본문 바로가기
Java, JSP

ThreadLocal(스레드로컬)

by 수앙 2016. 8. 16.

ThreadLocal(스레드로컬)

- 각 스레드마다 자신만이 쓸 수 있는 자원을 관리해주는 클래스


2가지 구현 방식이 있고 사용법은 간단하다.

1. ThreadLocal 객체화

ThreadLocal<String> threadLocal = new ThreadLocal<>();

threadLocal.set("test");

System.out.println(threadLocal.get());


2. ThreadLocal 상속 받은 클래스 객체화

initialValue() 메소드를 오버라이딩하여 초기값을 줄 수 있다(get() 호출 시 수행).

public class ThreadLocalHelper extends ThreadLocal<String> {

@Override

protected String initialValue() {

return "test";

}

}


3. 사용 방법

// 싱글톤으로 생성

ThreadLocalHelper<String> threadLocal = new ThreadLocalHelper<>();


// 스레드 최초 요청 시 또는 매번 요청 때마다

threadLocal.set(XXX);


// 필요한 곳에서 호출해서 사용

threadLocal.get();


// 요청이 최종으로 끝나면

threadLocal.remove();


끝.

댓글