[Java] ThreadLocal에 대한 나름의 이해
2023. 10. 2. 15:31ㆍ카테고리 없음
멀티쓰레드 환경에서 필드값을 변경하게 되면 원하지 않는 값이 다른 쓰레드에서 확인되는 문제가 발생한다
이에 대한 해결책으로 로컬변수와 매개변수를 활용하여 return 값으로 주고 이를 받아서 사용하는 방법이 있다
그러나 이 방법은 값을 한번만 받아서 사용해야 하기 때문에 클래스에 저장하고 불러오는 것보다 번거로움이 있다
이를 해결해줄 수 있는 방법이 ThreadLocal이다 ThreadLocal은 set과 get, remove를 가진다 이 객체를 통해 등록을 하게 되면 쓰레드 간에 공유될 수 있는 문제가 해결된다
Threadpool을 하게 되면 이전 정보가 남아있어 이를 가지고 오는 등 문제가 생기기 때문에 다 사용을 하면 remove를 통해서 지워주어야 한다
Reference
https://sabarada.tistory.com/m/163
https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/main/Java