想象一下,你有一个典型的Java生产者 - 消费者模式.要想要使用更高效,notify()而不是notifyAll()在将新元素添加到队列时.如果两个生产者线程调用notify,是否可以保证唤醒两个不同的等待消费者线程?或者可能是两个notify()在彼此之后不久被解雇导致同一个comsumer线程排队等待两次唤醒?我找不到该部分是描述这是如何工作的API.java是否有一些原子内部操作来唤醒线程一次?
notify()
notifyAll()
如果只有一个消费者在等待,那么第二个通知将会丢失,这没有问题.
java multithreading synchronization notify
java ×1
multithreading ×1
notify ×1
synchronization ×1