<b>Java线程:线程的调度-休眠</b>[Java编程]
本文“<b>Java线程:线程的调度-休眠</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
这里要明确的一点,不管程序员怎么编写调度,只能最大限度的影响线程履行的次序,而不能做到精准掌握.
线程休眠的目的是使线程让出CPU的最简单的做法之一,线程休眠时刻,会将CPU资源交给其他线程,以便能轮换履行,当休眠一按时间后,线程会复苏,进入预备状况等候履行.
线程休眠的办法是Thread.sleep(long millis) 和Thread.sleep(long millis, int nanos) ,均为静态办法,那调用sleep休眠的哪个线程呢?简单说,哪个线程调用sleep,就休眠哪个线程.
/**
* Java线程:线程的调度-休眠
*
* @author leizhimin
*/
public class Test {
public static void main(String[] args) {
Thread t1 = new MyThread1();
Thread t2 = new Thread(new MyRunnable());
t1.start();
t2.start();
}
}
class MyThread1 extends Thread {
public void run() {
for (int i = 0; i < 3; i++) {
System.out.println("线程1第" + i + "次履行!");
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
class MyRunnable implements Runnable {
public void run() {
for (int i = 0; i < 3; i++) {
System.out.println("线程2第" + i + "次履行!");
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
线程2第0次履行!
线程1第0次履行!
线程1第1次履行!
线程2第1次履行!
线程1第2次履行!
线程2第2次履行!
Process finished with exit code 0
从上面的后果输出可以看出,无法精准保证线程履行次序.
出处:http://lavasoft.blog.51cto.com/62575/221790
以上是“<b>Java线程:线程的调度-休眠</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |