线程局部变量ThreadLocal,是Java支持的一种线程安全机制,目的是解决多线程的并发问题。
具体来讲,就是多个线程访问该实例对象的变量时,该实例对象将其存储为键值对的形式,保证各个线程(键)分别对应一份该变量值(值),从而保证多线程变量值得安全访问。
ThreadLocal与同步机制比较
同步机制:用锁机制保证同一时间只有一个线程访问变量(用时间换空间),变量是多线程共享的,设计时要缜密分析什么时候读写?什么时候锁定?什么时候释放?
ThreadLocal:提供每个线程一个独立的变量副本(用空间换时间)。
TheadLocal的四个接口方法:
1.public void set(Object value) 设置当前线程局部变量
2.public Object get() 获取当前线程局部变量
3.public void remove() 删除当前线程局部变量
4.protected Object InitialValue() 初始化线程局部变量初始值,默认返回null,可重写改变返回值
转:http://blog.csdn.net/qjyong/article/details/2158097