我正在使用InheritableThreadLocal
并且我知道在创建子线程时ThreadLocal
将具有与父线程值相同的默认值。ThreadLocal
但是当父级的值被修改时,我该如何维护呢?
有没有办法在修改父线程时ThreadLocal
,他的所有子线程都收到该修改?
编辑:我在父线程中有一个布尔值设置为 false。但是我有一个条件,当这种情况发生时,我将布尔值设置为 true,并且我还需要对由我的初始线程产生的所有子线程执行此操作。
我正在使用InheritableThreadLocal
并且我知道在创建子线程时ThreadLocal
将具有与父线程值相同的默认值。ThreadLocal
但是当父级的值被修改时,我该如何维护呢?
有没有办法在修改父线程时ThreadLocal
,他的所有子线程都收到该修改?
编辑:我在父线程中有一个布尔值设置为 false。但是我有一个条件,当这种情况发生时,我将布尔值设置为 true,并且我还需要对由我的初始线程产生的所有子线程执行此操作。
InheritableThreadLocal
仅有助于在孩子中设置初始值。它不提供任何其他同步。您必须使用正常的线程同步方法来传播该值。
也就是说,如果您希望所有子项在开始时和父项更改时都具有相同的父项值,那么为什么要给他们所有需要同步的单独对象?为什么不给孩子一个对父母的参考,让他们都检查父母的价值呢?
我正在使用可继承
ThreadLocal
的,并且我知道在创建子项时ThreadLocal
,默认值将与父线程值相同。
如果它是继承的,它是同一个对象。一切都是一样的。
但是,当父级的 ThreadLocal 值修改时,我该如何维护呢?
维护什么?这里只有一个ThreadLocal
物体存在。然而,它的行为就是它的行为方式。