我正在尝试学习Java 8 Concurrent Programming和的基本概念 在这里的演示片段中无法理解使用返回解锁: http://www.javatips.net/api/thinking-java-master/src/main/java/ch21concurrent/examples/ConditionBoundedBuffer.java
// BLOCKS-UNTIL: notEmpty
public T take() throws InterruptedException {
lock.lock();
try {
while (count == 0)
notEmpty.await();
T x = items[head];
items[head] = null;
if (++head == items.length)
head = 0;
--count;
notFull.signal();
return x; // <<< RETURN without UNLOCK ? <<<
} finally {
lock.unlock();
}
}
我读到了关于安全解锁的动机尝试/最终, 但是这里的&#39;返回x&#39; 是监视器proc。然后解锁 带着这个回归?