• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

ThreadLocal 관련 질문입니다.

24.02.24 10:31 작성 조회수 148

-1

traceId = traceId.createPreviousId(); // traceIdHolder.set(traceId.createPreviousId());
두 코드의 결과에는 큰 차이가 없는 것 같은데, 굳이 traceIdHolder.set 을 사용해야 하는 이유가 있을까요??

답변 1

답변을 작성해보세요.

0

David님의 프로필

David

2024.02.24

안녕하세요. 최종민님, 공식 서포터즈 David입니다.

쓰레드 로컬을 사용하는 이유는 이전 편 필드 동기화 - 동시성 문제에서 언급된 싱글톤 빈이 상태를 가질 때 발생할 수 있는 동시성 문제를 해결하기 위함입니다. 해당 편과 쓰레드 로컬 동기화 - 개발편을 비교해보시면 왜 쓰레드 로컬로 구현된 traceIdHolder를 사용하는지 알 수 있습니다.

감사합니다.