【发布时间】:2023-03-29 21:20:01
【问题描述】:
我有 n 个线程并行运行,每个线程都执行一些自定义逻辑。但是,我的要求是,当任何一个线程完成执行时,所有其他线程都应该停止执行并返回。
实现这一点的最佳方法是什么?我想通过共享布尔变量来做到这一点。当任何线程完成执行时,它将设置布尔值。所有所有线程都会定期读取此变量并在设置时退出。
另外,我的自定义逻辑是一个无限循环,一旦我知道其他线程已完成执行,我想在当前迭代后停止执行。
这样做的正确方法是什么?
【问题讨论】:
-
从该特殊线程中生成所有其他线程!!!!
-
@AndersR.Bystrup 我不相信这是一个很好的重复,它并没有真正回答这个问题。
-
每次创建新的线程实例时,将该线程添加到全局线程列表中。这个线程列表将充当线程池。如果一个线程停止执行。您循环池并停止每个线程。这是一个非常简单的解决方案,希望对您有所帮助。
标签: java multithreading