线程间通信 java
Inter thread communication java
我想让我的应用程序中的线程相互通信。我的场景如下所述:(搜索过这个,但没有找到任何东西)
比如有10个线程在做某事。线程 1 遇到一些情况,它会安全终止,但我还需要它告诉所有其他线程停止它们正在做的事情并安全终止。
一种方法是共享一个变量,每个线程在做某事之前检查这个变量。需要注意的是,我需要在某些检查点继续检查这个变量。
如果线程 1 可以通过某种方式向其他线程发出信号停止他们正在做的事情并安全终止,那就更好了。
是否有可用的此类软件包或其他不会使事情过于复杂的软件包?
您几乎无能为力(但请查看我的最后一点)。
- 安排中断所有其他线程。 非常不整洁,可能会让您头疼
- 定期检查变量(或队列)。 可能是更好的方法,但如您所说,有点混乱
- 将您的代码重构为更小的函数,并使用线程池来处理它们。如果您检测到可以停止处理,请关闭池。 可能需要大量工作,但可能是最具弹性的解决方案
我想让我的应用程序中的线程相互通信。我的场景如下所述:(搜索过这个,但没有找到任何东西)
比如有10个线程在做某事。线程 1 遇到一些情况,它会安全终止,但我还需要它告诉所有其他线程停止它们正在做的事情并安全终止。
一种方法是共享一个变量,每个线程在做某事之前检查这个变量。需要注意的是,我需要在某些检查点继续检查这个变量。
如果线程 1 可以通过某种方式向其他线程发出信号停止他们正在做的事情并安全终止,那就更好了。
是否有可用的此类软件包或其他不会使事情过于复杂的软件包?
您几乎无能为力(但请查看我的最后一点)。
- 安排中断所有其他线程。 非常不整洁,可能会让您头疼
- 定期检查变量(或队列)。 可能是更好的方法,但如您所说,有点混乱
- 将您的代码重构为更小的函数,并使用线程池来处理它们。如果您检测到可以停止处理,请关闭池。 可能需要大量工作,但可能是最具弹性的解决方案