猿问

如何使用 join() /wait() /notify 组合以特定顺序结束线程?

假设我有 3 个线程实现了 Runnable 接口,并且我已经使用以下语句启动了它们。


t1.start();

t2.start(); 

t3.start();

有没有办法使用join(), wait(),notify()组合使线程按 t3 , t2, t1 的顺序结束?


慕标琳琳
浏览 117回答 2
2回答

杨__羊羊

不,线程将根据其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();
随时随地看视频慕课网APP

相关分类

Java
我要回答