如果有2个主题:A
和B
。我想要:
如果A
切换为睡眠状态,则B
也会切换为睡眠状态。
如果A
醒着,那么B
也会清醒。
有没有办法实现呢?
答案 0 :(得分:0)
如果需要同步这些线程,可以使用CyclicBarier。
这是一个线程等待的空白。它正在等待线程正在等待它,如果等待线程的数量达到指定的数量,那么它将唤醒所有线程并继续工作。因此,这是一种同步一堆线程以执行一步并等待彼此完成此步骤然后再执行下一步的方法。
答案 1 :(得分:0)
不直接。睡眠和唤醒不是用户代码有机会响应的线程上的生命周期事件。无法在另一个线程上调用Thread.sleep()
或Thread.wake()
,因为其余未弃用的Thread操作仅适用于当前线程。
更明确地表示线程A
和B
完成的工作之间的关系,例如队列。线程A使用队列中的工作,然后将结果放在线程B
使用的队列中。当有工作时,两个线程都在工作,当没有工作时,两个线程都在休眠。