ThreadLocal 是 Java 中的一个类,它允许你在多线程环境中存储和获取线程相关的数据。每个线程都有自己的 ThreadLocal 变量副本,这些变量在不同线程之间互不干扰。这对于在多线程应用程序中管理线程局部状态非常有用。
public class ThreadLocalExample {
private static ThreadLocal<Integer> threadLocalVariable = ThreadLocal.withInitial(() -> 0);
public static void main(String[] args) {
Runnable task = () -> {
int threadLocalValue = threadLocalVariable.get();
threadLocalValue++; // Modify the thread-local value
threadLocalVariable.set(threadLocalValue); // Set the modified value back
System.out.println("Thread " + Thread.currentThread().getId() + ": ThreadLocal value = " + threadLocalValue);
};
// Create and start multiple threads
Thread thread1 = new Thread(task);
Thread thread2 = new Thread(task);
thread1.start();
thread2.start();
}
}
请注意,每个线程都有自己的 threadLocalVariable 副本,因此它们可以独立地读取和修改它,而不会干扰其他线程的副本。
总之,ThreadLocal 可以帮助你在多线程环境中管理线程局部状态,但要小心使用,以防止内存泄漏和不必要的资源占用。