ThreadLocal

最近和同事讨论java多线程的问题,他说到有个ThreadLocal的类可以干嘛干嘛(当时没听清) 回来后自己看了下论坛上大神们的博客。稍微了解了下 具体地址如下深入研究java.lang.ThreadLocal类。其中说到ThreadLocal类其实是用来定义在被多线程调用的对象中。我们知道多线程的调用一般是线程隔离的就是如果两个线程同事在调用对象A,并修改A中的成员变量B 那么都是针对B本身去修改(如线程1将B修改为1,接着线程2将其由1修改为2,那么最终B值就是2.但是如果将B放在ThreadLocal中则线程1和线程2修改的是各自线程对应的属性,从而实现数据的安全)。延伸:我们知道severlet是多线程单例模式

当有请求过来的时候 容器会启用一个线程来调用severlet的doget()或dopost()方法,severlet类中本来是通过在方法中定义局部变量而不是定义成员变量来使线程隔离的,但是如果硬要定义成员变量 我觉得用ThreadLoacl一样能达到这个效果。同样封装自severlet的Struts2也与Threadloacl有着千丝万缕的关系

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值