在java JRE中,我看到了the code
private final ReentrantLock lock;
public E poll() {
final ReentrantLock lock = this.lock;
lock.lock();
为什么锁被捕获到私有变量?我希望简单
public E poll() {
lock.lock();
答案 0 :(得分:0)
主要是为了确保最佳性能。虽然这是一个真正的微优化,但它可能在性能敏感的代码中,你可能也可以做到。
您还需要非常小心,您正在使用的锁定引用不会发生变异。确保字段final
,但是final
本地引用是本地显式的。