我正在阅读java.util.concurrent.ArrayBlockingQueue
的源代码,发现了一些我不理解的代码:
private final ReentrantLock lock;
public boolean offer(E e) {
if (e == null) throw new NullPointerException();
final ReentrantLock lock = this.lock;
lock.lock();
try {
if (count == items.length)
return false;
else {
insert(e);
return true;
}
} finally {
lock.unlock();
}
}
请注意这一行:
final ReentrantLock lock = this.lock;
为什么它不直接使用this.lock
,而是将它赋给一个局部变量?
https://stackoverflow.com/questions/7943763
复制相似问题