Java에서 휘발성이란 무엇을 의미하나요?
Volatile에 의해 수정된 멤버 변수가 스레드에 의해 액세스될 때마다 해당 멤버 변수의 값은 공유 메모리에서 강제로 다시 읽혀집니다. 또한 멤버 변수가 변경되면 스레드는 변경된 값을 공유 메모리에 다시 써야 합니다. 이러한 방식으로 언제든지 두 개의 다른 스레드는 항상 특정 멤버 변수의 동일한 값을 볼 수 있습니다. \x0d\\x0d\Java 언어 사양에 따르면 최적의 속도를 위해 스레드가 공유 멤버 변수의 개인 복사본을 유지하고 동기화된 코드 블록에 들어가거나 나갈 때만 스레드와 멤버 변수를 공유하도록 허용합니다. \x0d\\x0d\ 이런 식으로 여러 스레드가 동시에 개체와 상호 작용할 때 스레드가 공유 멤버 변수의 변경 사항을 적시에 얻을 수 있도록 주의해야 합니다. \x0d\\x0d\휘발성 키워드는 VM에 다음 메시지를 표시합니다. 이 멤버 변수의 개인 복사본을 저장할 수는 없지만 공유 멤버 변수와 직접 상호 작용해야 합니다. \x0d\\x0d\Usage 제안: 둘 이상의 스레드에서 액세스하는 멤버 변수에 휘발성을 사용합니다. 접근하려는 변수가 이미 동기화된 코드 블록에 있거나 상수인 경우에는 사용할 필요가 없습니다. \x0d\\x0d\ 휘발성을 사용하면 VM에서 필요한 코드 최적화가 차단되므로 상대적으로 비효율적이므로 이 키워드는 필요한 경우에만 사용해야 합니다. \x0d\\x0d\C와 마찬가지로 컴파일러의 최적화가 금지되어 있습니다~~~~~