【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)
https://blog.csdn.net/m0_69908381/article/details/131630407
出自【进步*于辰的博客】
因为我发现目前,我对Java-API的学习意识比较薄弱,需要慢慢习惯使用Java-API,乃至剖析源码来提升自己的源码阅读能力和编码素质。
大家如果需要Java-API文档,我上传了【https://download.csdn.net/download/m0_69908381/87691693】。
文章目录
- 1、概述
- 2、构造方法摘要
- 2.1 null
- 3、方法摘要
- 3.1 T get()
- 3.2 protected T initialValue()
- 3.3 void remove()
- 3.4 void set(T value)
1、概述
直接已知子类:
InheritableThreadLocal
public class ThreadLocal<T>extends Object
该类提供了线程局部变量。这些变量不同于它们的普通对应物,因为访问一个变量(通过其 get()
或 set()
方法)的每个线程都有自己的局部变量,它独立于变量的初始化副本。ThreadLocal 实例通常是类中的私有静态字段,它们希望将状态与某一个线程(例如,用户 ID
或事务 ID
)相关联。
例如,在下面的类中,私有静态 ThreadLocal 实例(serialNum
)为调用该类的静态 SerialNum.get()
方法的每个线程维护了一个“序列号”,该方法将返回当前线程的序列号。(线程的序列号是在第一次调用 SerialNum.get()
时分配的,并在后续调用中不会更改。)
public class SerialNum {
// The next serial number to be assigned
private static int nextSerialNum = 0;
private static ThreadLocal serialNum = new ThreadLocal() {
protected synchronized Object initialValue() {
return new Integer(nextSerialNum++);
}
};
public static int get() {
return ((Integer) (serialNum.get())).intValue();
}
}
每个线程都保持一个对其线程局部变量副本的隐式引用,只要线程是活动的并且 ThreadLocal 实例是可访问的;在线程消失之后,其线程局部实例的所有副本都会被垃圾回收(除非存在对这些副本的其他引用)。
从以下版本开始:
1.2
2、构造方法摘要
2.1 null
创建一个线程本地变量。
3、方法摘要
3.1 T get()
返回此线程局部变量的当前线程副本中的值。
3.2 protected T initialValue()
返回此线程局部变量的当前线程的初始值。
3.3 void remove()
移除此线程局部变量的值。
3.4 void set(T value)
将此线程局部变量的当前线程副本中的值设置为指定值。文章来源:https://uudwc.com/A/ePb4q
本文暂缓更新。文章来源地址https://uudwc.com/A/ePb4q