Java 에서 사용하는 volatile 키워드에 대해 정리하고자 한다. 1. volatile 이란?- 코어가 변수의 값을 읽어올 때 캐시가 아닌 메모리에서 읽어오도록 변수 앞에 붙이는 키워드 2. 사용 목적- 가시성을 보장한다.(여기서 가시성이란, 공유 데이터를 사용한 다음 동기화 블록을 빠져나가고 나면 다른 스레드가 변경된 최신 값을 즉시 사용할 수 있게 해야 함을 의미한다.)- 변수 접근에 대한 동기화가 큰 오버헤드를 발생시키는 상황에서 대안이 될 수 있다. 3. 한계- 원자적 연산(읽기와 쓰기 작업이 단일 연산)에서만 사용 가능하다.- 스레드를 차단하지 않기 때문에 복잡한 상태 관리에는 적합하지 않다. 4. synchronized 키워드와의 비교- synchronized 키워드는 더 강력한 동기화 ..