20230615 java.lang.ThreadLocal
介绍
- java.lang.ThreadLocal
 - public class ThreadLocal
 - 线程局部变量
 
API
static 方法
- withInitial
<S> ThreadLocal<S> withInitial(Supplier<? extends S> supplier)- 创建一个线程局部变量, 其初始值通过调用给定的 
supplier生成 
 
public 方法
- get
- 得到这个线程的当前值。如果是首次调用 get , 会调用 initialValue 来得到这个值
 
 - set
- 为这个线程设置一个新值
 
 - remove
- 删除对应这个线程的值
 
 
protected 方法
- initialValue
- 应覆盖这个方法来提供一个初始值。默认情况下,这个方法返回 null
 
 
代码理解
ThreadLocal.getMap 返回的是 Thread 类中的实例字段 threadLocals
// ThreadLocal 中
ThreadLocalMap getMap(Thread t) {
    return t.threadLocals;
}
// Thread 中
ThreadLocal.ThreadLocalMap threadLocals = null;
ThreadLocalMap 中存储的是 Entry[] table ,而 Entry 的 key 是 ThreadLocal 对象, value 是局部变量值
所以每个 Thread 可以有多个 ThreadLocal 局部变量值,但是对于同一个 ThreadLocal 对象,只能有一个值
                    
                
                
            
        
浙公网安备 33010602011771号