vlotaile

sungs·2025년 7월 6일

자바

목록 보기
35/95

메모리 가시성

  • 간단히 말하자면 멀티 스레드일 때 한 스레드에서 자신의 캐시 메모리에만 변경된 값을 저장하고 메인 메모리나 다른 스레드의 캐시 메모리에까지 전달이 안 된 경우다. 즉 메모리에 변경된 값이 보이냐, 안 보이냐의 문제다.
  • 이는 cpu 환경이나 체제에 따라 달리 발생하기도 한다.
  • 출력이나 sleep 같은 스레드 상태가 변하는 등의 컨텍스트 스위칭이 일어나면 해결되기도 한다. 왜냐하면 스레드의 캐시 메모리를 비우기 때문이다.

vorteile

멀티 스레드 환경에서 메모리 가시성 문제를 해결해줄 방법 중 하나다.
private와 같이 인스터스 맨앞에 붙는다. 이를 사용하면 스레드는 캐시 메모리에 접근해서 값을 얻는 게 아닌 ram 등의 메인 메모리에 직접 접근해서 값을 얻거나 전달한다.
그 덕분에 값이 변경되면 즉시 반영된다.
다만, 캐시 메모리를 사용했을 때보다 성능이 저하되므로 자주 사용하지는 않는 게 좋다.

profile
앱 개발 공부 중

0개의 댓글