[Java] ThreadLocal에 대한 나름의 이해

2023. 10. 2. 15:31카테고리 없음

멀티쓰레드 환경에서 필드값을 변경하게 되면 원하지 않는 값이 다른 쓰레드에서 확인되는 문제가 발생한다
이에 대한 해결책으로 로컬변수와 매개변수를 활용하여 return 값으로 주고 이를 받아서 사용하는 방법이 있다
그러나 이 방법은 값을 한번만 받아서 사용해야 하기 때문에 클래스에 저장하고 불러오는 것보다 번거로움이 있다
이를 해결해줄 수 있는 방법이 ThreadLocal이다 ThreadLocal은 set과 get, remove를 가진다 이 객체를 통해 등록을 하게 되면 쓰레드 간에 공유될 수 있는 문제가 해결된다
Threadpool을 하게 되면 이전 정보가 남아있어 이를 가지고 오는 등 문제가 생기기 때문에 다 사용을 하면 remove를 통해서 지워주어야 한다

Reference


https://sabarada.tistory.com/m/163

[java] ThreadLocal에 관하여

안녕하세요. 오늘은 ThreadLocal에 대해서 알아보도록 하겠습니다. 변수를 공유하는 방법 객체는 Heap 또는 Stack 메모리 영역에 배치시킬 수 있습니다. Heap 영역은 일반적으로 모든 thread에서 접근 할

sabarada.tistory.com

https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/main/Java