java定向notifyAll()
请允许我提个问题
假设我的主线程创建了3个线程。 这3个线程对某个对象调用wait()。 然后主线程为同一对象调用notifyAll()
当thread1和thread3忽略通知并返回等待状态时,我如何确保thread2之外的线程(只有thread2)继续运行
本质上,我如何将通知定向到所选线程
如果我没有弄错的话,这在Java5中是非常简单的。一种方法是创建不同的条件,让主线程只满足thread2正在等待的条件
但是,我如何在pre5中解决它
干杯, 维克
# 1 楼答案
您应该注意,即使没有
notify
,线程也可以自动唤醒。所以你总是需要一些条件。守则的一般形式如下:只唤醒执行特定操作的线程可能有性能方面的原因。为此,请查看
java.util.concurrent.locks
,但请注意,这是一个性能问题,而不是做正确的事情的问题