Java线程高级主题与泛型编程
1. 线程本地存储(Thread Local Storage)
线程本地存储是指一种数据存储方式,可被访问线程的任何部分访问,且每个线程都有其唯一的值。常见用途包括为新创建的线程分配不同的标识符,或告知线程需要处理的工作。 ThreadLocal 对象通常是私有静态变量,用于将某些状态与线程关联,如用户 ID、会话 ID 或事务 ID。
1.1 线程本地存储的引入
线程本地存储在 JDK 1.2 中引入,允许每个线程拥有自己独立初始化的变量副本。给线程分配独立变量并不难,但以线程安全的方式为每个线程初始化不同的值则具有挑战性,因为同一线程的每个副本执行的是相同的代码。
1.2 示例代码
以下是一个为线程分配整数 ID 的示例:
class MyThreadLocal extends ThreadLocal <Integer>{
private static int id = 0;
// this method overrides a method in ThreadLocal
protected synchronized Integer initialValue() {
return id++; // autoboxing at work for you.
}
// this method overrides a method in ThreadLocal
public Integer get() {
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



