ThreadLocal测试

ThreadLocal

简介:

ThreadLocal(线程变量),意思是线程自己的变量;
提供线程局部变量。这些变量不同于它们的正常对应变量,因为每个访问一个变量的线程(通过其get或set方法)都有自己的、独立初始化的变量副本

用途:

可以隔离线程变量,相互不受影响

实验:

多个线程分别做累加操作,相互不受影响

实验代码:
public class T01_ThreadLocal {
    private static final Integer COUNT = 10_0000;

    private static ThreadLocal threadLocal = new ThreadLocal<>();


    void m() {
        threadLocal.set(0);
        for (int i = 0; i < COUNT; i++) {
            threadLocal.set(threadLocal.get() + 1);
        }
        System.out.println(Thread.currentThread() + ": 总数:" + threadLocal.get());
    }

    public static void main(String[] args) {
        T01_ThreadLocal testMain = new T01_ThreadLocal();
        for (int i = 0; i < 20; i++) {
            new Thread(() -> testMain.m(), "线程" + i).start();
        }
    }
}
实验结果:
image.png

你可能感兴趣的:(ThreadLocal测试)