我們的線程之間傳遞引用尋找的Java庫/功能(在Spring框架的上下文中)線程之間的引用:Java共享
//ParentThread:
XXX.putSharedObject("lock", childLock);
XXX.putSharedObject("someKey", someObjectInstance);
for(i=0;i<X;i++) { taskExecutor.execute(context.getBean("childClass")); }
childLock.wait(xxx);
//ChildThread:
YY = XXX.getSharedObject("someKey");
YY.someFunction();
...some work...
XXX.getSharedObject("lock").notify();
使得XXX設置任何參考由一個線程( ParentThread)只能被'ParentThread'和它的任何孩子訪問,而不能被其他'ParentThreads'或他們的孩子訪問。
這可能嗎? (我相信它怎麼樣的映射在日誌框架診斷上下文工作)
感謝
我最好的解析你的問題的能力,我想你可能會尋找['java.lang.ThreadLocal'(HTTPS: //docs.oracle.com/javase/8/docs/api/java/lang/ThreadLocal.html) –
這不是每個線程本身嗎?即,'ParentThread'定義的ThreadLocal變量可以被'ChildThread'訪問,而不會每次都在構造函數中傳遞它? (在這種情況下,從spring上下文獲取bean,併爲所有引用調用「setter」?) –
顯然有一個['java.lang.InheritableThreadLocal'](https://docs.oracle.com/javase/ 7 /文檔/ API /爪哇/郎/ InheritableThreadLocal.html)。 –