2011-06-13 44 views

回答

0

您可以通過get()方法從ThreadLocal中檢索對象本身,並將此引用傳遞給您的子線程。

如果您想要與您的子線程共享它,請參閱其他答案。

+0

從技術上講,不能共享可繼承的線程本地。每個子線程都獲得它自己的線程局部變量......這是從父線程的本地初始化的。 – 2013-07-01 09:30:52

1

所以,你想要一個的InheritableThreadLocal?

20

你需要的是一個InheritableThreadLocal。當創建後者時,將InheritableThreadLocal從父線程傳遞給子線程(Java「按值調用」語義)。

+0

謝謝.....這適用於我..... – user574557 2011-06-13 10:26:06

+1

它是否適用於ThreadPools?像ExecutorService一樣? – 2016-06-29 13:42:42

+0

不適用於ThreadPools。請參閱評論:http://stackoverflow.com/questions/7259906/propagating-threadlocal-to-a-new-thread-fetched-from-a-executorservice#comment8735906_7260192 – 2016-06-29 13:44:02

相關問題