:Java - 동기화시 휘발성이 필요합니까? 다음의 간단한 시나리오에서
class A {
int x;
Object lock;
...
public void method(){
synchronized(lock){
// modify/read x and act upon its value
}
}
}
X 필요는 휘발성해야합니까? 나는 동기화가 원 자성을 보장한다는 것을 알고 있지만 가시성에 대해서는 확신하지 못합니다 ... 자물쇠 -> 수정 -> 자물쇠 -> 자물쇠 보장, 두 번째 잠금 후 x 값이 "신선한"것인가?
'x'는 휘발성 일 필요는 없지만'lock'은 온전함을 위해 final이어야합니다. –
물론, 같은 잠금을 유지하면서'x'를 읽어야합니다. –