2

我最近发现自己遇到了 Lukasz在这里描述的同样问题。虽然这个问题的答案被证明是有帮助的并最终帮助我解决了我的问题,但我希望有人可能知道为什么ThreadPoolTaskExecutor不能正确处理MODE_INHERITABLETHREADLOCAL?这个问题是孤立的ThreadPoolTaskExecutor吗?

谢谢!瑞安

4

1 回答 1

3

好的,根据spring源码论坛的这篇帖子,子线程中的值只有在创建线程时才从父线程设置。如果您有一个线程池供重用,则不会再次设置该值,除非您更改它。

我从帖子中引用

您似乎希望使用调用线程(调用执行程序)的上下文而不是创建线程的上下文。这与使用继承的线程本地不同,所以这不是要走的路。您最好自己明确设置上下文,或者自定义执行器实现来这样做。

于 2012-11-20T16:31:17.097 回答