Java 多线程中使用 ThreadLocal 创建线程独立全局变量
在 Java 多线程中,使用 ThreadLocal 可以为每个线程创建一个独立的全局变量。每个线程都可以独立地访问和修改自己的全局变量,互不干扰。
使用 ThreadLocal 的步骤如下:
- 创建一个 ThreadLocal 对象,例如:
ThreadLocal<T> threadLocal = new ThreadLocal<>();,其中 T 是全局变量的类型。 - 在每个线程中,使用
threadLocal.set(value)方法来设置当前线程的全局变量的值。 - 在需要访问全局变量的地方,使用
threadLocal.get()方法来获取当前线程的全局变量的值。
以下是一个示例代码:
public class MyRunnable implements Runnable {
// 创建一个 ThreadLocal 对象
private ThreadLocal<Integer> threadLocal = new ThreadLocal<>();
@Override
public void run() {
// 设置当前线程的全局变量的值
threadLocal.set((int) (Math.random() * 100));
// 访问当前线程的全局变量的值
System.out.println('Thread: ' + Thread.currentThread().getId() + ', Value: ' + threadLocal.get());
}
}
public class Main {
public static void main(String[] args) {
// 创建多个线程
Thread t1 = new Thread(new MyRunnable());
Thread t2 = new Thread(new MyRunnable());
// 启动线程
t1.start();
t2.start();
}
}
运行以上代码,你会看到每个线程都能够独立地访问和修改自己的全局变量,互不干扰。
原文地址: https://www.cveoy.top/t/topic/bSCS 著作权归作者所有。请勿转载和采集!