![[기술 면접] 12. volatile 키워드가 무엇인가요? 1 volatile 키워드가 무엇인가요?](http://allhoneytip.com/wp-content/uploads/2023/09/제목을-입력해주세요__복사본-21-001-300x300-optimized.png)
저번 시간에 이어, 이번엔 volatile 키워드가 무엇인지에 대한 질문을 알아보겠습니다. 이 질문은 상대적으로 자주 나오는 질문은 아닙니다. 하지만, Java에 대해 깊게 탐구해본 경험이 있는지 확인할 수 있는 질문이기 때문에, 실전에서 대답할 수 있게 된다면, 충분한 강점으로 어필될 수 있을 것으로 생각합니다.
![[기술 면접] 12. volatile 키워드가 무엇인가요? 2 Java Generic 타입에 대해서 설명해주세요.](http://allhoneytip.com/wp-content/uploads/2023/07/image-59-1024x512-optimized.png)
Q: volatile 키워드가 무엇인가요?
Java 변수를 Main Memory에 저장한다는 것을 명시합니다. 변수의 값을 Read할 때, CPU cache에 저장된 값이 아닌 Main Memory에서 읽어옵니다.
Q: volatile은 언제 사용하나요?
CPU Cache의 변수 값 불일치 문제를 해결하기 위해 사용합니다. Multi Thread 환경에서 하나의 Thread만 read & write하고 나머지 Thread가 read하는 상황에서 가장 최신의 값을 보장합니다.
Q: volatile 변수를 사용할 때 주의사항이 있나요?
- volatile 변수는 원자적인 연산만 보장하기 때문에 복합적인 연산에는 적합하지 않습니다.
- volatile 변수는 스레드 간의 순서를 제어할 수 없으므로, 별도의 동기화 메커니즘을 사용해야 합니다.
마치며
이번 시간엔 volatile 키워드에 대해 알아보았습니다.
다음 시간에는, Reflection에 대한 면접 질문들을 알아보겠습니다.
![[기술 면접] 12. volatile 키워드가 무엇인가요? 2 Java Generic 타입에 대해서 설명해주세요.](http://allhoneytip.com/wp-content/uploads/2023/07/image-59-1024x512-optimized.png)
답글 남기기