所以我有一個(gè)帶有4個(gè)線程的程序,所有這些線程都在運(yùn)行。即使在程序完成工作時(shí),這些線程中的3個(gè)始終在運(yùn)行。因此,我創(chuàng)建了一些變量以使其停止。我改變了while(true)對while(exit)和程序工作正常。在線程之后,我想運(yùn)行其他語句,但前提是線程已停止。我嘗試使用4個(gè)變量,exit,exit1,exit2,exit3并將它們設(shè)置為false。線程將完成并使這些變量為true。在主菜單之后Thread.start(),如果我要打印某些內(nèi)容,則不會打印。Thread1.start();Thread2.start();Thread3.start();Thread4.start();有沒有一種方法可以確保僅在線程停止后才運(yùn)行某些語句?
1 回答

三國紛爭
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
本Thread類有會替你的方法加入將阻塞,直到線程已經(jīng)完成執(zhí)行。Baeldung教程如何使用Thread#join
因此,您的代碼應(yīng)如下所示:
thread1.start();
thread2.start();
thread3.start();
thread4.start();
thread1.join();
thread2.join();
thread3.join();
thread4.join();
if(exit && exit2 && exit3 && exit4) {
System.out.println("Program Ended");
}
添加回答
舉報(bào)
0/150
提交
取消