java ThreadLocal

ThreadLocal是用来维护本线程中的变量,不能解决共享变量的并发问题。
ThreadLocal是各线程将值存入该线程的map中,以ThreadLocal自身作为key,需要用时获得的是该线程之前存入的值。
如果存入的是共享变量,那取出的也是共享变量,并发问题还是存在的。

ThreadLocal的主要用途是为了维护线程自身对象(说白了就是保存)和避免参数传递。
若实际场景中,有一多层方法的调用:因为多线程,所以无法将参数改成静态,因为没有源码,所以无法修改为参数调用(而且这样做的改动也太大)。

使用方法:
1、线程外创建ThreadLocal<T>实例。
2、线程内 .set(),在该线程内任何其他地方 .get()。

 

参考:

说明:https://mp.weixin.qq.com/s/aM03vvSpDpvwOdaJ8u3Zgw

源码:http://www.cnblogs.com/dolphin0520/p/3920407.html

posted on 2018-09-14 11:45  植物大戰僵尸  阅读(88)  评论(0编辑  收藏  举报

导航