下面的代码片段是否保证 t1、T2 和 T3 将按顺序开始执行?
public class ThreadExecDemo {
public static void main(String[] args) throws InterruptedException {
Thread t1 = new Thread(new ThreadDemo(),"t1");
Thread t2 = new Thread(new ThreadDemo(),"t2");
Thread t3 = new Thread(new ThreadDemo(),"t3");
t1.start();
Thread.sleep(5);
t2.start();
Thread.sleep(5);
t3.start();
}
}
class ThreadDemo implements Runnable {
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+" is running ");
}
}
最佳答案
简短回答:否。
更长的答案:不。您无法通过 sleep 来可靠地影响线程的调度(您为什么要这样做?)。 当您启动一个线程时,它与任何其他线程(包括主线程)异步运行,并且您无法控制它的调度时间。你也不应该关心。
关于java - 使用 sleep 能否保证线程的执行顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37734909/