引用传递多线程ThreadLocal 案例
时间: 2024-10-29 13:03:27 浏览: 21
引用传递(Pass by Reference)在多线程中经常与`ThreadLocal`一起使用,因为`ThreadLocal`是一个线程局部变量,每个线程都有自己的独立副本,不会因为线程间共享而影响到其他线程。下面是一个简单的例子:
```java
import java.util.concurrent.ThreadLocalRandom;
public class ThreadLocalExample {
private static ThreadLocal<Integer> threadLocal = new ThreadLocal<>();
public static void main(String[] args) {
// 启动两个线程,各自改变ThreadLocal的值
new Thread(() -> changeThreadLocal(5)).start();
new Thread(() -> changeThreadLocal(10)).start();
// 线程结束后打印结果,可以看到每个线程有自己的副本
System.out.println(threadLocal.get()); // 可能得到5 或 10
}
private static void changeThreadLocal(int value) {
threadLocal.set(value);
System.out.println("Current ThreadLocal value in this thread: " + value);
}
}
阅读全文