码迷,mamicode.com
首页 > 其他好文 > 详细

ThreadLocal

时间:2016-10-23 20:38:07      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:读取   ber   create   通过   else   content   his   ext   需要   

Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的ThreadLocal变量。

一旦创建了一个ThreadLocal变量,你可以通过如下代码设置某个需要保存的值:

1 myThreadLocal.set("A thread local value”);

可以通过下面方法读取保存在ThreadLocal变量中的值:

1 String threadLocalValue = (String) myThreadLocal.get();

get()方法返回一个Object对象,set()对象需要传入一个Object类型的参数。

  1. public void set(T value) {  
  2.     // 获取当前线程对象  
  3.     Thread t = Thread.currentThread();  
  4.     // 获取当前线程本地变量Map  
  5.     ThreadLocalMap map = getMap(t);  
  6.     // map不为空  
  7.     if (map != null)  
  8.         // 存值  
  9.         map.set(this, value);  
  10.     else  
  11.         // 创建一个当前线程本地变量Map  
  12.         createMap(t, value);  
  13. }  

 

每个线程 可以维持多个自己线程内部的threadlocal成员 每个成员维持一个map

 

ThreadLocal

标签:读取   ber   create   通过   else   content   his   ext   需要   

原文地址:http://www.cnblogs.com/lnas01/p/5990519.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!