Volatile은 변수 업데이트가 다른 스레드에 통보되도록 약한 동기화 메커니즘을 제공합니다. 휘발성 변수는 레지스터에 캐시되지 않거나 다른 프로세서에 표시되지 않으므로 휘발성 변수를 읽으면 항상 가장 최근에 작성된 값이 반환됩니다. 다음과 같은 의미로 상상할 수 있지만 휘발성은 보다 가벼운 동기화 메커니즘입니다. 휘발성은 가시성만 보장할 수 있지만 원자성은 보장할 수 없습니다. 즉, i++와 같은 복합 연산에서는 휘발성 변수를 사용할 수 없습니다.
다음과 같이 코드 코드를 복사합니다.
공개 동기화 무효 setValue(int 값){
this.value = 값;
}
공개 동기화 int getValue(){
반환값;
}
휘발성 변수는 다음 조건이 모두 충족되는 경우에만 사용할 수 있습니다.
1. 변수에 대한 쓰기 작업은 변수의 현재 값에 의존하지 않거나 단일 스레드만 변수 값을 업데이트하도록 할 수 있습니다.
2. 이 변수는 다른 상태 변수와 함께 불변 조건에 포함되지 않습니다.
3. 변수에 접근할 때 잠글 필요가 없습니다.