<分区>
我有一个启动几个线程的应用程序,最终一个线程可能需要退出整个应用程序,但是其他线程可能正在执行任务,所以我想让它们在退出之前继续当前循环。
在下面的示例中,线程 2 不知道线程 1 何时试图退出,它只是强制所有内容立即完成。
如何让线程 2、3 和 4 等在关闭前完成它们的循环?
编辑:为了解决重复的问题问题:这与父类不能负责操纵关闭的典型情况不同,任何单独的线程都必须能够启动关闭。
Edit2:我还留下了一个答案,说明我最终所做的是对已接受答案的实现。
class Scratch {
public static void main(String[] args) {
Thread Task1 = new Thread(new Task1());
Task1.start();
Thread Task2 = new Thread(new Task2());
Task2.start();
// ... more threads
}
public class Task1 implements Runnable {
public void run() {
while (true) {
// ...
System.exit(0);
// ...
}
}
}
public class Task2 implements Runnable {
public void run() {
while (true) {
// ...
// I need to know about System.exit(0) to exit my loop
// ...
}
}
}
}