【发布时间】:2011-09-13 17:59:24
【问题描述】:
我在 ThreadLocal 中传递了一个对象。 现在我当前的线程将创建新的子线程。 我希望来自 ThreadLocal 的对象也应该继续使用子线程。
有什么办法可以做到……?
提前谢谢你....
【问题讨论】:
-
所以你想要一个 InheritableThreadLocal?
标签: java
我在 ThreadLocal 中传递了一个对象。 现在我当前的线程将创建新的子线程。 我希望来自 ThreadLocal 的对象也应该继续使用子线程。
有什么办法可以做到……?
提前谢谢你....
【问题讨论】:
标签: java
您需要的是InheritableThreadLocal。在创建子线程时,将 InheritableThreadLocal 从父线程(Java“按值调用”语义)传递给子线程。
【讨论】:
InheritableThreadLocal 不适用于线程池,因为线程被重用。您对此有何看法?
Stream.parallel()。
InheritableThreadLocal:stackoverflow.com/questions/41293485/…
您可以通过get() 方法从您的ThreadLocal 检索对象本身并将此引用传递给您的子线程。
如果您想与您的子线程共享它,请查看其他答案。
【讨论】: