저번 시간에 이어, 이번엔 volatile 키워드가 무엇인지에 대한 질문을 알아보겠습니다. 이 질문은 상대적으로 자주 나오는 질문은 아닙니다. 하지만, Java에 대해 깊게 탐구해본 경험이 있는지 확인할 수 있는 질문이기 때문에, 실전에서 대답할 수 있게 된다면, 충분한 강점으로 어필될 수 있을 것으로 생각합니다.
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에 대한 면접 질문들을 알아보겠습니다.
답글 남기기