몇 개의 스레드 읽기 (common concurrency problems, volatile keyword, memory model) Java의 동시성 문제에 대해 혼란스러워합니다.둘 이상의 스레드가 필드에 액세스 할 수 있으면 volatile로 표시해야합니까?
나는 하나 이상의 스레드가 액세스하는 많은 필드가 있습니다. 나는 그것들을 관통하고 모두 휘발성으로 표시해야합니까?
클래스를 만들 때 여러 스레드가 액세스 할 수 있는지 여부를 알지 못하기 때문에 모든 필드를 이 아닌이 휘발성이되도록하는 것이 안전하지 않으므로 사용하지 않을 경우는 거의 없습니다. . 이 올바른지?
제게 이것은 1.5 버전의 JVM과 관련이 있습니다 만, 제 설정에 대한 응답으로 제한되지는 않습니다.
이 특별한 사용 사례는 직접'synchronized'을 사용하는 대신 AtomicInteger를 참조하십시오. – erickson
실제로. 필자는 맹목적으로 '동기'를 사용하여 정확히 무엇을 제공하고 제공하지 않는지 모르는 함정을 보여주고 싶었습니다. – bdonlan