인프런 커뮤니티 질문&답변

조성락님의 프로필 이미지
조성락

작성한 질문수

스프링 핵심 원리 - 고급편

쓰레드 로컬 동기화 - 개발

쓰레드 로컬 데이터 저장위치 질문

작성

·

231

·

수정됨

0

ThreadLocalLogTrace는 싱글톤이잖아요?

그러므로 A와 B에서 참고하는
ThreadLocalLogTrace 참조값은
같은 값을 가리킬꺼같은데,

여기서 ThreadLocal<TraceId> 필드는
각 A쓰레드 B쓰레드 각각의 공유하지 않는
고유의 데이터영역에 저장되는것인가요?
(JVM에서 STACK과 PC Register처럼)

아니면 일종의 해시함수처럼 작용하여
A쓰레드에서의 요청이면 알아서 A의 데이터
B쓰레드에서의 요청이면 알아서 B의 데이터
를 주는것인가요?

만약 전자라면 이게 어떻게 가능한것인지?

답변 2

0

안녕하세요. 조성락님, 공식 서포터즈 OMG입니다.
강의 수강 중 궁금한 사항은 언제든 질문 남겨주세요 ^^
감사합니다.

0

조성락님의 프로필 이미지
조성락
질문자

직접 코드를 보고 이해했습니다! 감사합니다
ThreadLocal은 static으로 구현되어있어
모든 쓰레드가 참조가능하고,

내부적으로 쓰레드의 정보에 따라
내용을 저장하는 Map이 구현되어있네요

조성락님의 프로필 이미지
조성락

작성한 질문수

질문하기