所以我有一个带有4个线程的程序,所有这些线程都在运行。即使在程序完成工作时,这些线程中的3个始终在运行。因此,我创建了一些变量以使其停止。我改变了while(true)对while(exit)和程序工作正常。在线程之后,我想运行其他语句,但前提是线程已停止。我尝试使用4个变量,exit,exit1,exit2,exit3并将它们设置为false。线程将完成并使这些变量为true。在主菜单之后Thread.start(),如果我要打印某些内容,则不会打印。Thread1.start();Thread2.start();Thread3.start();Thread4.start();有没有一种方法可以确保仅在线程停止后才运行某些语句?
1 回答
三国纷争
TA贡献1804条经验 获得超7个赞
本Thread类有会替你的方法加入将阻塞,直到线程已经完成执行。Baeldung教程如何使用Thread#join
因此,您的代码应如下所示:
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");
}
添加回答
举报
0/150
提交
取消