Java 高并发编程详解 11.0 线程上下文设计模式

本文详细探讨了Java中的线程上下文设计模式,包括上下文对象的全局特性,如Spring的Application和Struts2的ActionContext。通过简单上下文演示,强调了单例模式和线程安全的重要性,并提到了线程局部变量ThreadLocal在高并发环境中的应用,同时也警示了ThreadLocal可能引发的内存泄漏问题,建议在使用中注意回收。
摘要由CSDN通过智能技术生成

上下文

上下文是 贯穿整个系统或阶段生命周期的对象 例如Spring的Application,struts2的ActionConext等 包含系统全局的一些信息,比如登录后的用户信息,账号信息,以及程序每一个阶段运行的数据。

简单上下文演示:

public class ApplicationContext {
   
    // 在context中保存configuration信息
    private String applicationConfiguration;
    // 在context中保持的runtimeInfo信息
    private String runtimeInfo;
    // ... 其他上下文信息

    // 采用holder方式实现单例模式
    private static class Holder{
   
        private static ApplicationContext instance = new ApplicationContext();
    }
    public static ApplicationContext getContext(){
   
        return Holder.instance;
    }


    // 线程的上下文设计
    // 这种方式会导致内存泄漏 就是当线程关闭结束后只将contexts中的key会变成null,而value对应对象不会释放
    // 所以时间长了就会导致内存泄漏,当然可以通过 soft reference和 weak reference等引用类型来控制JVM来主动尝试回收。
    private ConcurrentHashMap<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值