老师你好,关于这个案例,我还是有点疑问。之前也有同学问过相同的,给出的答案是双Condition能够避免生产者线程唤醒生产者线程。
但是我觉得会出现这样的情况,是因为生产者线程使用的是condition.signal(),一次只唤醒一个线程。但是如果我用的是condition.signalAll(),即便是单Condition,也不会出现生产者线程唤醒生产者线程的情况,至少把消费者一起唤醒了。
同理,如果使用synchronized(lock) 和wait/notifyAll,这种情况也类似单Condition。
所以我觉得是不是 单Condition + signalAll() ,效果是和 双Condition + signal 效果是等价的?