我想知道为什么我们可以在java.util.concurrent类中看到这种类型的代码模式:
public class ArrayBlockingQueue...
...
final ReentrantLock lock;
...
public boolean offer(E e) {
checkNotNull(e);
final ReentrantLock lock = this.lock;
lock.lock();
try {
...
} finally {
lock.unlock();
}
}
我不明白为什么在调用lock()和unlock()方法之前我们必须复制对锁的引用,因为lock属性是final。
感谢您的帮助,
罗曼。