当前位置:   article > 正文

线程池中的线程变量_使用线程变量

使用线程变量

线程池中的线程变量

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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/220832
推荐阅读
相关标签
  

闽ICP备14008679号