28、Java线程高级主题与泛型编程

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() {
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值