内容:
static ThreadLocal<MyType> threadLocalMyType = ...
我想说的是:
for (ThreadLocalEntry e: threadLocalMyType.getMapLikeThing() {
// Thread t = e.getKey();
// I don't need the thread value right now, but it might be useful for
// something else.
MyType theMyType = e.getValue();
// [...do something with theMyType...]
}
最佳答案
一种方法是手动处理此问题:
使用ThreadLocal
的包装器(扩展它)
只要设置了值,就保持(static
)Map
的线程和值
或者,通过一些反射(getDeclaredMethod()
和setAccessible(true)
),您可以:
致电Thread.getThreads()
调用yourThreadLocal.getMap(thread)
(对于上述每个线程)
致电map.getEntry(yourThreadLocal)
第一是更优选的。
关于java - 有没有办法迭代或复制Java ThreadLocal的所有值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56404059/