在 Java 多线程中,使用 ThreadLocal 可以为每个线程创建一个独立的全局变量。每个线程都可以独立地访问和修改自己的全局变量,互不干扰。

使用 ThreadLocal 的步骤如下:

  1. 创建一个 ThreadLocal 对象,例如:ThreadLocal<T> threadLocal = new ThreadLocal<>();,其中 T 是全局变量的类型。
  2. 在每个线程中,使用 threadLocal.set(value) 方法来设置当前线程的全局变量的值。
  3. 在需要访问全局变量的地方,使用 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();
    }
}

运行以上代码,你会看到每个线程都能够独立地访问和修改自己的全局变量,互不干扰。

Java 多线程中使用 ThreadLocal 创建线程独立全局变量

原文地址: https://www.cveoy.top/t/topic/bSCS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录