如何在Java中监视线程的状态?

时间:2016-08-15 06:10:06

标签: java multithreading

如果有2个主题:AB。我想要:

  1. 如果A切换为睡眠状态,则B也会切换为睡眠状态。

  2. 如果A醒着,那么B也会清醒。

  3. 有没有办法实现呢?

2 个答案:

答案 0 :(得分:0)

如果需要同步这些线程,可以使用CyclicBarier。

这是一个线程等待的空白。它正在等待线程正在等待它,如果等待线程的数量达到指定的数量,那么它将唤醒所有线程并继续工作。因此,这是一种同步一堆线程以执行一步并等待彼此完成此步骤然后再执行下一步的方法。

答案 1 :(得分:0)

不直接。睡眠和唤醒不是用户代码有机会响应的线程上的生命周期事件。无法在另一个线程上调用Thread.sleep()Thread.wake(),因为其余未弃用的Thread操作仅适用于当前线程。

更明确地表示线程AB完成的工作之间的关系,例如队列。线程A使用队列中的工作,然后将结果放在线程B使用的队列中。当有工作时,两个线程都在工作,当没有工作时,两个线程都在休眠。