Java线程调度是Java多线程的核心只有良好的调度才能充分发挥系统的性能提高程序的执行效率
这里要明确的一点不管程序员怎么编写调度只能最大限度的影响线程执行的次序而不能做到精准控制
线程休眠的目的是使线程让出CPU的最简单的做法之一当休眠一定时间后线程会苏醒进入准备状态等待执行
线程休眠的方法是Threadsleep(long millis) 和Threadsleep(long millis int nanos) 均为静态方法那调用sleep休眠的哪个线程呢?简单说哪个线程调用sleep就休眠哪个线程
/**
* Java线程线程的调度休眠
*
* @author leizhimin ::
*/
public class Test {
public static void main(String[] args) {
Thread t = new MyThread();
Thread t = new Thread(new MyRunnable());
tstart();
tstart();
}
}
class MyThread extends Thread {
public void run() {
for (int i = ; i < ; i++) {
Systemoutprintln(线程第 + i + 次执行!);
try {
Threadsleep();
} catch (InterruptedException e) {
eprintStackTrace();
}
}
}
}
class MyRunnable implements Runnable {
public void run() {
for (int i = ; i < ; i++) {
Systemoutprintln(线程第 + i + 次执行!);
try {
Threadsleep();
} catch (InterruptedException e) {
eprintStackTrace();
}
}
}
}
线程第次执行!
线程第次执行!
线程第次执行!
线程第次执行!
线程第次执行!
线程第次执行!
Process finished with exit code
从上面的结果输出可以看出无法精准保证线程执行次序
本文出自 熔 巖 博客请务必保留此出处