[@徐雷frank][¥20]ThreadLocal 这个为啥理解起来迷迷糊糊得?-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

[@徐雷frank][¥20]ThreadLocal 这个为啥理解起来迷迷糊糊得?

晓生寒 2018-12-14 20:49:26 1061

(1)new ThreadLocal 对象;

(2)ThreadLocal里面有个ThreadLocalMap 的内部类,存放;

(3)每个Thread 有一个ThreadLocalMap成员变量;

(4)threadlocal.set(T):相当于为每一个线程创建了一个Object得副本变量;

threadlocal.get():获取当前thread内部ThreadLocal对象对应得value;

是这样理解的吗? 这样得话每个线程操作副本时候不会相互影响是吧,还有呢? 还解决了什么问题?

分享到
取消 提交回答
全部回答(1)
  • 徐雷frank
    2019-07-17 23:21:33

    1、Java ThreadLocal是和单个线程相关的变量,没有线程安全问题,自带自用,好比每个人出去旅游自带水壶一样,不会互相争用,。
    2、每个线程都有自己的ThreadLocal变量,
    3、线程可以使用它的get()和set()方法来获取默认值或将其值更改为Thread的本地值。
    4、ThreadLocal实例通常是希望将状态与线程相关联的类中的私有静态字段。


    阿里巴巴云栖社区Java专场12月22日周六下午 杭州,https://yq.aliyun.com/activity/796不少同学 高铁 飞机来杭州参加大会

    0 0
云计算
使用钉钉扫一扫加入圈子
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章