线程池中的线程变量

线程池中的线程变量

做过后台开发的,应该都知道线程变量这个东西,能保证每个线程拿到的数据与别的线程不同,只要做简单的set/get 操作,就可以。
—– 这是前提 —–
今天做开发,需要在内层函数中传数据到外层,一种文案是,层层return,这种方法可以实现,but 我调用了三层方法,意味着至少改四处,更多的修改意味着更多的bug,然后就想到有个神奇的线程变量可以使用。

代码一阵修改,上线,等着效果出来,发现在线程变量中设置的数据出现次数很多很多,预期只有个别次出现的,然后检查检查再检查,发现代码并无问题,运行也是正常的。

一个小时之后,突然想到是不是线程池的原因,导致并没有真正地创建新的线程,也就是说线程变量中保存的还是之前线程的内容。

有了思路,先搜索,再试验,果然,线程池由于未创建新的线程,导致线程变量也是之前的内容,有了结论,修改就很简单了,一种直接在进入线程时设置为null,另一种是在使用后清空,两种文案效果相同。唯一不同就是后面代码是否要继续使用此值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值