Из официальных Java Документация класса Condition
public void put(E x) throws InterruptedException {
lock.lock();
try {
while (count == items.length)
notFull.await();
items[putptr] = x;
if (++putptr == items.length)
putptr = 0;
++count;
notEmpty.signal();
} finally {
lock.unlock();
}
}
Какова роль наличия notFull.await()
в цикле while
? Я не вижу, что это делает. Кто-нибудь может дать простое объяснение?