这个问题在这里已经有答案了:
在arrayblockingqueue中,为什么要将final成员字段复制到局部final变量中(2个答案)
为什么将锁捕获到局部变量(1个答案)
上个月关门了。
在java.util.concurrent.arrayblockingqueue中,我发现如下代码:
public boolean offer(E e) {
Objects.requireNonNull(e);
final ReentrantLock lock = this.lock;
lock.lock();
try {
if (count == items.length)
return false;
else {
enqueue(e);
return true;
}
} finally {
lock.unlock();
}
}
我想知道 this.lock
只是相当于 lock
. 如果没有,我们为什么要这样做 this.lock
-它是用于任何类型的多线程安全目的吗?
暂无答案!
目前还没有任何答案,快来回答吧!