首页 > 代码库 > ThreadLocal
ThreadLocal
Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的ThreadLocal变量。
一旦创建了一个ThreadLocal变量,你可以通过如下代码设置某个需要保存的值:
1 |
myThreadLocal.set("A thread local value”); |
可以通过下面方法读取保存在ThreadLocal变量中的值:
1 |
String threadLocalValue = http://www.mamicode.com/(String) myThreadLocal.get(); |
get()方法返回一个Object对象,set()对象需要传入一个Object类型的参数。
- public void set(T value) {
- // 获取当前线程对象
- Thread t = Thread.currentThread();
- // 获取当前线程本地变量Map
- ThreadLocalMap map = getMap(t);
- // map不为空
- if (map != null)
- // 存值
- map.set(this, value);
- else
- // 创建一个当前线程本地变量Map
- createMap(t, value);
- }
每个线程 可以维持多个自己线程内部的threadlocal成员 每个成员维持一个map
ThreadLocal
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。