用ThreadLocal写一段代码
时间: 2023-04-07 14:03:09 浏览: 109
好的,我可以回答这个问题。以下是使用ThreadLocal写的示例代码:
```
public class ThreadLocalExample {
private static final ThreadLocal<Integer> threadLocal = new ThreadLocal<Integer>() {
@Override
protected Integer initialValue() {
return 0;
}
};
public static void main(String[] args) {
Runnable runnable = new Runnable() {
@Override
public void run() {
int value = threadLocal.get();
for (int i = 0; i < 5; i++) {
value++;
threadLocal.set(value);
System.out.println(Thread.currentThread().getName() + " : " + threadLocal.get());
}
}
};
Thread thread1 = new Thread(runnable, "Thread 1");
Thread thread2 = new Thread(runnable, "Thread 2");
thread1.start();
thread2.start();
}
}
```
这段代码创建了一个ThreadLocal对象,用于存储每个线程的局部变量。在每个线程中,我们可以使用get()方法获取当前线程的局部变量,并使用set()方法设置新的值。在这个示例中,我们创建了两个线程,并在每个线程中递增局部变量的值,并输出结果。由于每个线程都有自己的局部变量,因此输出结果应该是不同的。
阅读全文