В Java JRE я видел the codeПочему замок захвачен локальной переменной
private final ReentrantLock lock;
public E poll() {
final ReentrantLock lock = this.lock;
lock.lock();
Почему замок захватил в приватной переменной? Я бы ожидал просто
public E poll() {
lock.lock();
Дубликат http://stackoverflow.com/questions/2785964/in-arrayblockingqueue-why-copy-final-member-field-into-local-final-variable –
Я бы сказал, что это не имеет смысла, но Дуг Ли сделал это в нескольких методах класса, который вы упомянули, поэтому должна быть причина. Мне любопытно, что ответ - хороший вопрос. –