下面的变量 x 是否需要是 volatile 的?
或者 utils.concurrent 锁中的操作是否执行与同步块相同的功能(确保它被写入内存,而不是存储在 cpu 缓存中)?
myMethod(){
myLock.lock();
x++;
myLock.unlock();
}
下面的变量 x 是否需要是 volatile 的?
或者 utils.concurrent 锁中的操作是否执行与同步块相同的功能(确保它被写入内存,而不是存储在 cpu 缓存中)?
myMethod(){
myLock.lock();
x++;
myLock.unlock();
}
只有在没有锁的情况下在其他地方访问这些变量时,它们才需要是 volatile 的。例如,作为对大小变量的快速只读访问。锁定方法的作用与同步块相同。有关Lock类,请参阅 javadoc 中的“内存同步”部分。