用这个例子将感觉没什么内容啊,而且对于ThreadLocal介绍的很不详细
来源:5-3 线程封闭
![](http://img1.sycdn.imooc.com/user/668282c900011ed310281111-100-100.jpg)
BlakeZ
2020-05-28
感觉这一章节用这个例子来讲都没说说明太多东西啊, 都没怎么理解。既然ThreadLocal是多线程很重要的一个内容,也得详细说一下啊,不能因为你其他的课之前讲过就不细说了吧。 毕竟不能因为这个点,再去买你那个课啊
写回答
1回答
-
你好,其他课里因为有实际例子做支撑,理解起来会更容易一些。
这里具体说一下threadlocal吧,threadlocal首先可以从字面上理解,thread local,他就是为每个线程存储线程独立的数据。因此呢,在某个线程运行时把数据写入threadLocal里,那么也就只有这个线程还能读取到,threadLocal本质上就是通过“线程封闭”的方式才保证线程安全的。
通常,我们会选择在某个切面里将特殊变量写入threadlocal,之后在实际每个接口实现时按需使用。
threadlocal能做到这种“线程封闭”,取决于底层实现时的threadLocalMap。Thread为每个线程维护了ThreadLocalMap这么一个“Map”,而ThreadLocalMap的key是LocalThread对象本身,value则是要存储的对象。当实际使用时,相当于传入LocalThread对象,获取这个thread之前存入的对象。
112020-05-30
相似问题