ThreadLocal之前我认为就是内部维护了一个ThreadLocalMap其中key为当前线程(Thread.currentThread),value就是相应的值,近来查看了一下,原来自己以前的认识有误。
1.ThreadLocal是什么
-
ThreadLocal是线程本地变量,可以将数据通过ThreadLocal读写,实现数据的线程隔离。
每个线程都拥有一份独立数据副本,达到线程封闭的机制。
ThreadLocal
2.ThreadLocal实现思路
Thread类维护一个变量:ThreadLocal.ThreadLocalMap,写数据时key为ThreadLocal的软引用,value为存储的数据.写入自己线程的ThreadLocalMap里.读数据时,以某个ThreadLocalMap作为引用,在自己的ThreadLocalMap找到对应的key,从而实现线程隔离。

3.ThreadLocal API

网友评论