4

下面的变量 x 是否需要是 volatile 的?

或者 utils.concurrent 锁中的操作是否执行与同步块相同的功能(确保它被写入内存,而不是存储在 cpu 缓存中)?

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

1 回答 1

4

只有在没有锁的情况下在其他地方访问这些变量时,它们才需要是 volatile 的。例如,作为对大小变量的快速只读访问。锁定方法的作用与同步块相同。有关Lock类,请参阅 javadoc 中的“内存同步”部分。

于 2010-08-24T01:34:55.200 回答