ThreadLocal不好用?那是你没用对!(14)

简介: ThreadLocal不好用?那是你没用对!(14)

ThreadLocal 操作类:


/**
 * 用户信息存储类
 */
class UserStorage {
    // 用户信息
    publicstatic ThreadLocal<User> USER = new ThreadLocal();
    /**
     * 存储用户信息
     * @param user 用户数据
     */
    public static void setUser(User user) {
        USER.set(user);
    }
}


订单类:


/**
 * 订单类
 */
class OrderSystem {
    /**
     * 订单添加方法
     */
    public void add() {
        // 得到用户信息
        User user = UserStorage.USER.get();
        // 业务处理代码(忽略)...
        System.out.println(String.format("订单系统收到用户:%s 的请求。",
                user.getName()));
    }
}


仓储类:


/**
 * 仓储类
 */
class RepertorySystem {
    /**
     * 减库存方法
     */
    public void decrement() {
        // 得到用户信息
        User user = UserStorage.USER.get();
        // 业务处理代码(忽略)...
        System.out.println(String.format("仓储系统收到用户:%s 的请求。",
                user.getName()));
    }
}


以上程序的最终执行结果:


微信图片_20220120190030.jpg


从上述结果可以看出,当我们在主线程中先初始化了 User 对象之后,订单类和仓储类无需进行任何的参数传递也可以正常获得 User 对象了,从而实现了一个线程中,跨类和跨方法的数据传递


相关文章
|
存储 安全 C语言
C语言抽象数据类型栈的定义讲解
C语言抽象数据类型栈的定义讲解
179 0
|
7月前
|
SQL 监控 数据库
如何解决 SQL Server 占用内存过多问题
SQL Server 占用过多内存会导致响应缓慢和查询性能低下。解决流程包括:1) 查看内存使用情况,2) 分析各数据库内存占用,3) 优化 SQL Server 配置(如限制最大内存),4) 优化查询(如创建索引),5) 持续监控效果。通过这些步骤可有效控制内存占用,提升系统性能。
888 0
|
专有云 中间件 数据库
飞天企业版通过信通院“一云多芯”专有云技术能力评测
飞天企业版通过信通院“一云多芯”专有云技术能力评测
387 0
|
传感器 自动驾驶 安全
以下是未来无人驾驶汽车发展的一些方向和机会
以下是未来无人驾驶汽车发展的一些方向和机会
以下是未来无人驾驶汽车发展的一些方向和机会
|
JavaScript 前端开发
vue、react中虚拟的dom
vue、react中虚拟的dom
|
开发工具 git
如何修改git的用户邮箱
如何修改git的用户邮箱
182 0
|
负载均衡 Java API
Spring Cloud中的服务注册与发现策略
Spring Cloud中的服务注册与发现策略
|
前端开发 小程序 容器
订水商城实战教程09-跑马灯
订水商城实战教程09-跑马灯
|
机器学习/深度学习 人工智能 监控
人工智能能否为物联网应用提供价值?
人工智能是最有前途的技术之一,将在使物联网工作更智能方面发挥重要作用。使用人工智能可以帮助人们解决与数据收集、分析和决策相关的问题?
245 0
|
设计模式
设计模式之中介者
设计模式之中介者
224 0