티스토리 뷰
- ThreadLocal(스레드로컬) 이란?
The ThreadLocal class in Java enables you to create variables that can only be read and written by the same thread
같은 스레드내에서 값을 읽고 쓰기 위해서 사용하기 위함이다.
- 사용법(Usage)
ThreadLocal.get() : set variable to ThreadLocal
ThreadLocal.set() : get variable to ThreadLocal
사용은 권장하지 않는다. 일반적인 대용량 시스템이 싱글 스레드일리는 없고, 대부분 상용 시스템은 멀티 스레드 기반의 시스템을 구성한다.
그런데 이때, ThreadLocal 은 서로 다른 값을 갖기 때문에 용이성이 떨어진다. 만약, end-to-end 거래로 Thread 재활용성 없다면 용이하지만 추천하지 않는다.(정보의 유실 가능)
또한, 스레드로컬은 메모리 누수의 주범!!(예시는 다음과 같다)
How ThreadLocal creates memory leak in Java
=> 결론은 스레드 로컬사용하는 스레드 또는 서블릿의 레퍼런스 변수들이 스레드 로컬값을 가리키기 때문에 스레드로컬은 메모리상에 지속적으로 남는다. 쓸려면... clear 이후에 써라..뭐 이런내용..
개인적인 경험으로, ThreadLocal framework 를 쓰는지 모르고 sync를 async로 변경해서 개발했더니..정보가 꼬이는 현상이 있었다....아래가 조치방법이다.
requires a careful usage of ThreadLocal variable and making sure to remove the object from ThreadLocal once done.
'JAVA' 카테고리의 다른 글
Clone() 클론 함수. (0) | 2018.12.26 |
---|---|
MultiThread 멀티스레드 (0) | 2018.12.18 |
Model-View-Controller(MVC) Pattern (0) | 2018.12.16 |
이벤트버스 패턴 (0) | 2018.12.07 |
브로커 패턴 (0) | 2018.12.03 |
- Total
- Today
- Yesterday
- 데이터시각화
- 자바 클론
- 프라이빗블록체인
- 이더리움
- SSL
- 소프트웨어디자인
- JSP JAVA
- 카드사용알림서비스
- 아키텍처
- JSP JAVA 변수 선언
- 스레드로컬
- JSP JAVA코드 넣기
- 이벤트버스패턴
- 자바 객체복사
- 계층화패턴
- 클라이언트서버아키텍처
- <%%>
- JSP 자바 사용법
- HTTPS
- josn object
- jsp
- 아키텍처패턴
- jsp 자바클래스 넣는법
- 클라이언트서버모델
- data.map
- 마스터 슬레이드
- jsp내 자바넣기
- 디자인패턴
- 마스터 슬레이드 패턴
- 퍼블릿블록체인
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |