简介 ThreadLocal是每个线程自己维护的一个存储对象的数据结构,线程间互不影响实现线程封闭。一般我们通过ThreadLocal对象的get/set方法存取对象。 源码分析 ThreadLocal的set方法源码如下 public void set(T value) {Thread t = Thread.currentThread();ThreadLocalMap map = getMap(t); // 根据当前线程获得ThreadLocalMap对象if (map != null)map.set(this, value); // 如果有则setelsecreateMap(t, value); // 否则创建ThreadLocalMap对象}ThreadLocalMap getMap(Thread t) {return t.threadLocals;}void createMap(Thread t, T firstValue) {t.threadLocals = new ThreadLocalMap(this, firstValue);} 通过getMap方法,可见我们返回的map实际上是Thread对象的threadLocals属性。而这个ThreadLocalMap就是用来存储数据的结构。 ThreadLocalMap介绍 ThreadLocalMap是ThreadLocal的核心,定义在ThreadLocal类里的内部类,他维护了一个Enrty数组。ThreadLocal存/取数据都是通过操作Enrty数组来实现的……
mysql中local方法,LOCAL
最新推荐文章于 2023-06-19 10:17:32 发布