java volatile : 변수의 가시성과 최적화
면접 질문들을 모아놓은 레포를 보다 보면, 싱글톤 패턴은 많이 언급한다는 것을 알 수 있습니다. 거기서 DCL 패턴이 나오고, volatile도 나오는데요. 여기서 volatile이 무엇을 의미할까요? 먼저, 간단하게 프로그램을 작성해 보겠습니다. Main 스레드와 Worker1 스레드 하나가 있습니다. 이 프로그램은, Main Thread에서 w1의 stop flag를 중간에 true로 셋팅합니다. Worker1의 run 메소드는 그냥 stop flag가 false이면 계속 돕니다. 결과가 어떻게 나올까요? 공교롭게도, 0 : stop flag만 출력하고 더 이상 진행되지 않습니다. 이는 왜 그럴까요? 공식 문서를 보면 자세히 알 수 있습니다. Note 바로 윗 단락의 내용을 천천히 봅시다. 일단, w..
OS/이론
2020. 12. 16. 06:30
최근댓글