有时我需要唤醒或发送一个线程来睡觉,我想知道最好和最有效的方法是什么。
第一个解决方案是信号结合wait-notify
(我知道如何正确实现这种模式,这不是问题)。
我在某处读到它,使用java.concurrent库和CountDownLatch
用于信令更有效。我也检查了concurrent.locks.Condition,但是这个主题指出它只是一个(程序员方面)更安全和更通用的构造,与notify/notifyAll
. Peter Lawrey 建议使用并发库而不是notify-notifyAll
在此评论中,所以现在我很困惑什么是最佳实践。
一个相关的问题:哪个性能更好,notify
或者notifyAll
在我的情况下(即如果我有一个线程)?我知道有很多类似的主题,但没有一个给出明确的答案。就我而言,从功能上讲,我使用哪个并不重要,但我想知道哪个更快。