0
点赞
收藏
分享

微信扫一扫

记一次bug,关于InheritableThreadLocal在父子间传递ThreadLocal信息

飞空之羽 2022-01-20 阅读 73
java

这两天发现一个bug,使用parallelStreamm并行流执行任务,任务是调用其他方的一个接口,需要传递jwt。

第一次请求中使用的token A,没有问题。之后请求使用的token B。

但是每次请求都有大部分的请求还是使用的token A。

后来找到原因,因为使用了InheritableThreadLocal,所以第一次使用token A时,使用了ForkJoin common线程池,线程继承了第一次请求的token B。第二次请求时,虽然切换了token B,但是线程池中的线程不会销毁,重新使用这些线程,线程的内容则还是token A。

举报

相关推荐

0 条评论