ThreadLocal

来源:互联网 发布:mac磁盘不能分区 编辑:程序博客网 时间:2024/05/20 10:10

* 不是为了解决多线程共享变量问题 *
ThreadLocal实例通常来说都是private static类型。


threadLocal: 为每一个使用该变量的线程都提供一个在threadLocal中定义的synchronizedMap

public class ThreadLocal<T> {      private Map values = Collections.synchronizedMap(new HashMap());     public T get() {          Thread t = Thread.currentThread();          ThreadLocalMap map = getMap(t);          if (map != null)              return (T)map.get(this);          T value = initialValue();          createMap(t, value);          return value;      }      public void set(T value) {          Thread t = Thread.currentThread();          ThreadLocalMap map = getMap(t);          if (map != null)              map.set(this, value);          else              createMap(t, value);      }  

操作的是类中会被多个对象操作的变量:

0 0
原创粉丝点击