ThreadLocal

2024.6.30

1.ThreadLocal的类声明: public class ThreadLocal<T> 可以看出ThreadLocal并没有继承自Thread,也没有实现Runnable接口。

2.ThreadLocal类为每一个线程都维护了自己独有的变量拷贝。每个线程都拥有了自己独立的一个变量。 所以ThreadLocal重要作用并不在于多线程间的数据共享,而是数据的独立

3.由于每个线程在访问该变量时,读取和修改的,都是自己独有的那一份变量拷贝,不会被其他线程访问, 变量被彻底封闭在每个访问的线程中

4.ThreadLocal中定义了一个哈希表用于为每个线程都提供一个变量的副本

 1 static class ThreadLocalMap {         
 2     static class Entry extends WeakReference<ThreadLocal> {             
 3         /** 
 4             The value associated with this ThreadLocal. 
 5         */             
 6         Object value;             
 7         Entry(ThreadLocal k, Object v) {                 
 8             super(k);                 
 9             value = v;             
10         }         
11     }         
12     private Entry[] table; 
13 }

 

2024.7.2

1.内部使用的开放定址法

posted @ 2024-06-30 10:33  sellingpear  阅读(8)  评论(0编辑  收藏  举报