ThreadLocal的简要概述

29 阅读1分钟

1.ThreadLocal的简介

threadlocal主要是用于创建在不同线程间不会相互影响的变量,即为每一个线程创建一个副本,以隔离其他线程对于这个变量的影响。因此,这个变量只能由所属的线程使用。

2.ThreadLocal实际的存储结构

ThreadLocal这个类相当于是存了一个key-valye形式的值。其中key指的是Thread,valye指的是这个隔离的变量。
当希望获得当前线程所属的局部变量的时候,通常是get()方法获得。获得的过程如下
每一个Thread都会有一个ThreadLocalMap对象,这个map对象里面仅仅存在了一个Entry对象。这个entry中的key值得是当前线程对应的threadLocal对象,value指的是这个线程隔离的对象。