当其中一个线程完成指定任务时,如何注意到其他线程会杀死自己?

时间:2018-07-18 01:54:26

标签: java multithreading

我创建了10个线程来完成相同的任务,如果其中一个线程提前完成,我想杀死其他线程。 有什么办法吗?

1 个答案:

答案 0 :(得分:1)

我不认为有一种简单的方法可以直接使用Java。作为一个简单的建议,您可以:

  1. 创建一个ThreadGroup实例
  2. 将您的十个线程添加到线程组
  3. 启动所有10个线程
  4. 在每个线程的run()方法中编写代码,以便在完成其负责的工作时,在ThreadGroup实例上调用interrupt()。这将导致该组中所有线程上的interrupt()调用
  5. 将代码写入每个线程的工作块内(run()内的循环?),以便它定期检查其状态。当它看到状态被中断时,应该干净地退出。