ThreadLocal

简单介绍一下ThreadLocal的原理
1.ThreadLocal会为每一个线程维护一个和该线程绑定的实例变量的副本
2.因为每一个线程都拥有自己独立的实例变量副本,而不会和其它线程的副本冲突

 

ThreadLocal的应用场合是按线程多实例(每个线程对应一个实例)的对象的访问,并且这个对象很多地方都要用到。

 

 

1: 在HttpServlet中, 是单实例多线程的,每个request的请求携带多个参数,这么把参数放到一个地方,然后可以再dao或者service层中取到呢:
一般的做法是一直传下去:

ThreadLocal:

public class LocalContext {
      private static final ThreadLocal <LocalContext> contexts = new ThreadLocal <LocalContext>();

     private String uid;
     
     private String clientType;
    
     .....

     public static LocalContext getContext() {
          LocalContext context = contexts .get();
           if (context == null) {
              context = new LocalContext();
               contexts .set(context);
          }
           return context;
     }
}

 

把你公共的参数放到LocalContext, LocalContext模式 

 

中;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值