volatile (1) 썸네일형 리스트형 2. Java 멀티쓰레드 환경(volatile, synchronized, atomic) 멀티쓰레드 환경에서 자주 언급되는 가시성, 원자성, 동기화에 대해서 먼저 이해하고 넘어가야합니다.개념원자성(Atomicity)가시성(Visibility)동기화(Synchronization)목적중간에 끊기지 않고 완전한 실행 보장변수 값이 다른 쓰레드에서 즉시 보이게 보장여러 쓰레드에서 동시 접근 제어보장연산이 중간에 끊어지지 않음다른 쓰레드가 즉시 값을 반영원자성, 가시성 보장예시AtomicInteger.incrementAndGet()volatile 변수synchronized 키워드 사용성능매우 효율적(CAS방식)성능 저하 없음성능 저하, 잠금 획득 대기 가능 CAS(Compare And Swap)방식CPU나 메모리에 저장된 현재 값과 기존 값을 비교한 후, 만약 값이 일치하면 새로운 값을 메모리에 반영.. 이전 1 다음