스레드 간에 데이터를 궁유하지 않고 스레드 내부에서 데이터를 유지하고 싶을 때 사용되는 클래스
public class MyThreadLocalExample {
// ThreadLocal 변수 생성
private static ThreadLocal<String> threadLocalVariable = new ThreadLocal<>();
public static void main(String[] args) {
// 첫 번째 스레드에서 변수 설정
Thread thread1 = new Thread(() -> {
threadLocalVariable.set("Value set by Thread 1");
printVariable("Thread 1");
});
// 두 번째 스레드에서 변수 설정
Thread thread2 = new Thread(() -> {
threadLocalVariable.set("Value set by Thread 2");
printVariable("Thread 2");
});
// 각 스레드 시작
thread1.start();
thread2.start();
}
private static void printVariable(String threadName) {
// 스레드별로 설정된 변수 출력
System.out.println(threadName + " - Variable Value: " + threadLocalVariable.get());
}
}
