Java ArrayBlockingQueue有两个条件:notFull和notEmpty。如何理解这两种情况?这是一种锁拆分吗?

Java ArrayBlockingQueue有两个条件:notFull和notEmpty。如何理解这两种情况?这是一种锁拆分吗?,java,locking,blockingqueue,Java,Locking,Blockingqueue,如果这是一种锁拆分策略,那么我看到可变操作:put由锁保证。那么你说的是 它们不是锁,而是信号(条件) 一个线程在放置值时会等待空间可用,即未满 读取值的线程将等待添加项,即notEmpty在哪里看到这两种情况?在什么情况下?你的问题不清楚。它们不是锁,而是信号夹!我在AbstractQueuedSynchronizer中看到了条件的实现。我可以将条件视为一种信号量吗?谢谢!你很好。

如果这是一种锁拆分策略,那么我看到可变操作:put由锁保证。

那么你说的是


它们不是锁,而是信号(
条件

一个线程在放置值时会等待空间可用,即
未满


读取值的线程将等待添加项,即
notEmpty

在哪里看到这两种情况?在什么情况下?你的问题不清楚。它们不是锁,而是信号夹!我在AbstractQueuedSynchronizer中看到了条件的实现。我可以将条件视为一种信号量吗?谢谢!你很好。