我们的线程之间传递引用寻找的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)。 –