Thread ThreadLocal ThreadLocalMap

Posted 技术从未如此性感

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Thread ThreadLocal ThreadLocalMap相关的知识,希望对你有一定的参考价值。

        ThreadLocal<String> local1 = new ThreadLocal<>();
        ThreadLocal<String> local2 = new ThreadLocal<>();

        new Thread(new Runnable() 
            @Override
            public void run() 
                local1.set("Hello");
                local2.set("World");
            
        ).start();

        new Thread(new Runnable() 
            @Override
            public void run() 
                local1.set("Hello");
                local2.set("World");
            
        ).start();

ThreadLocal用于保存线程作用域内的变量。

Thread中可以包含多个ThreadLocal变量。

Thread中有个ThreadLocalMap,ThreadLocalMap其中有一个Entry数组,Entry包装了ThreadLocal和用户设置的value

当调用ThreadLocal#set使用,会将ThreadLocal和Value包装成为一个Entry,放入到Thread中的ThreadLocalMap中。

以上是关于Thread ThreadLocal ThreadLocalMap的主要内容,如果未能解决你的问题,请参考以下文章

ThreadLocal为什么不使用Thread-value实现

Thread ThreadLocal ThreadLocalMap

Thread ThreadLocal ThreadLocalMap

java get all threadlocal from thread

ThreadLocal源码

transmittable-thread-local:解决线程池之间ThreadLocal本地变量传递的问题