• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

24.04.02 15:28 작성 24.04.02 15:29 수정 조회수 95

0

ThreadLocalLogTrace는 싱글톤이잖아요?

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

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

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

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

답변 2

·

답변을 작성해보세요.

0

OMG님의 프로필

OMG

2024.04.03

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

0

조성락님의 프로필

조성락

질문자

2024.04.02

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

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