假设我有 3 个线程实现了 Runnable 接口,并且我已经使用以下语句启动了它们。t1.start();t2.start(); t3.start();有没有办法使用join(), wait(),notify()组合使线程按 t3 , t2, t1 的顺序结束?
2 回答
杨__羊羊
TA贡献1943条经验 获得超7个赞
不,线程将根据其run()方法实现内部发生的情况终止。如果您只是获得一个当前正在运行的线程而无法访问它正在执行的代码,则无法强制它终止(除了调用stop()or destroy(),这两个都已弃用且不应使用)。
但是,如果您可以编写这些线程正在运行的代码,那就真的很简单了:
Thread t3 = new Thread(() -> {
System.out.println("Thread 3 terminating...");
});
Thread t2 = new Thread(() -> {
try { t3.join(); } catch(InterruptedException e) {};
System.out.println("Thread 2 terminating...");
});
Thread t1 = new Thread(() -> {
try { t2.join(); } catch(InterruptedException e) {};
System.out.println("Thread 1 terminating...");
});
t1.start();
t2.start();
t3.start();
添加回答
举报
0/150
提交
取消