线程间通信java

时间:2017-05-23 07:54:13

标签: java multithreading communication

我想让我的应用程序中的线程相互通信。我的场景如下所述:(搜索了这个,但没有找到任何东西)

例如,10个线程正在做某事。线程1遇到一些安全终止的条件,但我还需要它告诉所有其他线程停止它们正在做什么并安全终止。

执行此操作的一种方法是共享变量,每个线程在执行某些操作之前检查此变量。需要注意的是,我需要在某些检查点继续检查这个变量。

如果有一些方法让thread1通知其他人停止他们正在做的事情并安全终止,那会更好。

任何此类软件包可用或其它方式可以做到这一点而不会使事情太复杂?

1 个答案:

答案 0 :(得分:2)

你可以做的很少很干净(但请查看我的最后一点)。

  1. 安排中断所有其他线程。 非常不整洁,可能会让你头疼
  2. 定期检查变量(或队列)。 可能是一种更好的方法,但正如你所说,有点凌乱
  3. 将代码重构为较小的函数,并使用线程池来处理它们。如果检测到可以停止处理,请关闭池。 可能是很多工作但可能是最具弹性的解决方案