threadlocal 理解

引用:
1、ThreadLocal设计目的:解决同一线程内的数据共享,多线程之间不能相互访问;
2、ThreadLocal基本原理: 是一个线程内的一个局部变量,它其实是一个map,key是当前线程,value可以存放需要保存的变量;
3、ThreadLocal基本使用方法:1)ThreadLocal 中只能保存一个变量,如果两个以上变量的话,可以将ThreadLocal绑定在一个类中,这个类中可以存放多个变量,
    2)truts2就是实现了这个原理,即针对每个请求会生成一个容器放入到ThreadLocal中,每个容器都包含了请求的特定信息,
    3)每个request都对应有一个线程thread,而ThreadLocal又是线程相关的,所以在做有些公共的处理,又不想放到action里面的时候,可以用threadlocal的存贮变量来实现。
4、ThreadLocal对象的回收,如果ThreadLocal存放的引用没有被引用,而且当前线程处于死亡状态,ThreadLocal就会对该引用进行清理。

猜你喜欢

转载自zjfgf.iteye.com/blog/1536011