ThreadLocal
2016-04-05 20:45
211 查看
Thread线程-->Runnable任务
当多个资源对同一资源进行访问时,可能出现问题.
使用ThreadLocal可以避免这个问题
* 它的内部是一个Map
当前线程作为key,保证了对应得值不能被其他线程访问
* ThreadLocal通常用在一个类的成员上
* 多个线程访问它时,每个线程都有自己的副本,互不干扰!
* Spring中把Connection放到了ThreadLocal中。
当多个资源对同一资源进行访问时,可能出现问题.
使用ThreadLocal可以避免这个问题
package com.threadLocal; import org.junit.Test; public class Deamo { @Test public void fun(){ ThreadLocal<String> t = new ThreadLocal<String>(); t.set("haha"); String s = t.get(); t.remove(); System.out.print(s); } }
* 它的内部是一个Map
当前线程作为key,保证了对应得值不能被其他线程访问
class TL<T> { private Map<Thread, T> map = new HashMap<Thread, T>(); public void set(T data) { // 使用当前线程做key map.put(Thread.currentThread(), data); } public T get() { return map.get(Thread.currentThread()); } public void remove() { map.remove(Thread.currentThread()); } }
* ThreadLocal通常用在一个类的成员上
* 多个线程访问它时,每个线程都有自己的副本,互不干扰!
* Spring中把Connection放到了ThreadLocal中。
相关文章推荐
- 16位平台、32位平台、64位平台下char、short、int、long、指针 分别占多少字节,操作系统可以使用的最大内存空间
- 第二章 consul的安装和启动
- Android动态资源加载原理和应用
- 团队项目成员和题目
- 适配器模式
- Java数据泛型正确的初始化方法
- hdu 1007 Quoit Design [sort+分治] 寻找最小距离点对
- Trackbar的使用
- R语言简单语法入门
- jvectormap 中国地图的显示
- hdu 1556
- Robotium中定位Android客户端疑难元素
- leetcode之Implement Queue using Stacks
- LeetCode Two Sum
- 类与对象(1)
- 更改putty鼠标右键粘贴
- java实现图(无向图)数据结构
- 2016年4月4日中项作业
- 第5周项目3-时间类(2)
- Python与Selenium初试