Java: все ли изменяемые переменные должны быть изменчивыми при использовании блокировок? - PullRequest
4 голосов
/ 24 августа 2010

Должна ли следующая переменная x быть энергозависимой?

Или же манипуляция в блокировке utils.concurrent выполняет ту же функцию, что и синхронизированный блок (гарантируя, что он записан в память и не сохранен в кэше процессора)?

myMethod(){
  myLock.lock();
  x++;
  myLock.unlock();
}

1 Ответ

4 голосов
/ 24 августа 2010

Такие переменные должны быть нестабильными, только если они доступны в другом месте без блокировки.Например, в качестве быстрого доступа только для чтения к переменной размера.Методы блокировки служат той же цели, что и синхронизированный блок.См. Раздел «Синхронизация памяти» в javadoc для класса Lock .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...