采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
感觉这一章节用这个例子来讲都没说说明太多东西啊, 都没怎么理解。既然ThreadLocal是多线程很重要的一个内容,也得详细说一下啊,不能因为你其他的课之前讲过就不细说了吧。 毕竟不能因为这个点,再去买你那个课啊
你好,其他课里因为有实际例子做支撑,理解起来会更容易一些。
这里具体说一下threadlocal吧,threadlocal首先可以从字面上理解,thread local,他就是为每个线程存储线程独立的数据。因此呢,在某个线程运行时把数据写入threadLocal里,那么也就只有这个线程还能读取到,threadLocal本质上就是通过“线程封闭”的方式才保证线程安全的。
通常,我们会选择在某个切面里将特殊变量写入threadlocal,之后在实际每个接口实现时按需使用。
threadlocal能做到这种“线程封闭”,取决于底层实现时的threadLocalMap。Thread为每个线程维护了ThreadLocalMap这么一个“Map”,而ThreadLocalMap的key是LocalThread对象本身,value则是要存储的对象。当实际使用时,相当于传入LocalThread对象,获取这个thread之前存入的对象。
好的,非常感谢老师的解答!
登录后可查看更多问答,登录/注册
构建完整并发与高并发知识体系,倍增高薪面试成功率!
1.7k 1
1.1k 18
1.2k 15
3.6k 12
1.2k 12