假設我有 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
提交
取消