All Honey Tip

[기술 면접] 12. volatile 키워드가 무엇인가요?

수정 일:

발행 일:

volatile 키워드가 무엇인가요?

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

Java Generic 타입에 대해서 설명해주세요.






Q: volatile 키워드가 무엇인가요?

Java 변수를 Main Memory에 저장한다는 것을 명시합니다. 변수의 값을 Read할 때, CPU cache에 저장된 값이 아닌 Main Memory에서 읽어옵니다.








Q: volatile은 언제 사용하나요?

CPU Cache의 변수 값 불일치 문제를 해결하기 위해 사용합니다. Multi Thread 환경에서 하나의 Thread만 read & write하고 나머지 Thread가 read하는 상황에서 가장 최신의 값을 보장합니다.








Q: volatile 변수를 사용할 때 주의사항이 있나요?

  1. volatile 변수는 원자적인 연산만 보장하기 때문에 복합적인 연산에는 적합하지 않습니다.
  2. volatile 변수는 스레드 간의 순서를 제어할 수 없으므로, 별도의 동기화 메커니즘을 사용해야 합니다.





마치며

이번 시간엔 volatile 키워드에 대해 알아보았습니다.

다음 시간에는, Reflection에 대한 면접 질문들을 알아보겠습니다.

Java Generic 타입에 대해서 설명해주세요.



코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다