스프링 부트 - Thread Local(쓰레드 로컬)

salgu·2021년 12월 20일
0

Spring

목록 보기
19/21

Thread Local은 동시성 문제를 해결할 수 있습니다.
쓰레드 로컬은 해당 쓰레드만 접근할 수 있는 특별한 저장소를 말합니다.

동시성 문제는 지역 변수에서는 발생하지 않는다. 지역 변수는 쓰레드마다 각각 다른 메모리 영역이 할당된다.
동시성 문제가 발생하는 곳은 같은 인스턴스의 필드(주로 싱글톤에서 자주 발생), 또는 static 같은 공용필드에 접근할 때 발생한다.
동시성 문제는 값을 읽기만 하면 발생하지 않는다. 어디선가 값을 변경하기 때문에 발생한다.

Thread Local 기본 Flow

Thread Local을 사용한 후 값을 삭제해주지 않으면 다시 할당받은 쓰레드가 이전의 값을 조회하기 때문에 반드시 삭제 해주어야 합니다.

ThreadLocal.remove()










reference : 김영한님

profile
https://github.com/leeeesanggyu, leeeesanggyu@gmail.com

0개의 댓글