.NET中的Java形式,有一個「超級」線程本地存儲(TLS),它允許任意TLS數據自動神奇地「跳」從一個線程到另一個。它基於CallContext class。什麼是C#「邏輯調用上下文」
換句話說,一個邏輯請求可以生成的新線程的層次結構 - ,並且每個這些線程將具有訪問原始線程的相同TLS。這是一個非常強大的功能,特別是對於日誌記錄,授權,多租戶或品牌關注。
什麼是Java中的等價物?
只有在.net 4.5 has the "logical callcontext" gained a "copy on write" capability中允許線程對邏輯callcontext進行專用修改。換句話說,.net仍然正在成熟這種能力並提供更大的穩定性。
如果Java有一個等價的概念,如何穩定呢?它有什麼問題?
澄清
我已經知道,Java有一個線程本地存儲(TLS)的能力。這不是問題。我在問,Java是否具有.net「邏輯調用上下文」的等價物,它比簡單的TLS更強大。
有趣的問題。不過,不幸的是,我認爲你運氣不好。就我所知,Java中沒有這種功能。我很樂意被糾正,並學習新的東西。 –
只是澄清問題 - 如果您的示例中的「原始線程」更改其TLS數據,其子線程是否會看到更新的值?也就是說,子線程不僅獲得副本,還擁有父TLS的實時視圖? –
JDK中沒有官方的異步支持。創建你自己的(沒有語言級語法)並不難。例如,我的[Fiber and FiberLocal](http://bayou.io/release/0.9/docs/async/Async_Programming.html#Fiber) – ZhongYu