Lan*_*uhn 14 java multithreading
有没有办法列出绑定到线程的TheadLocals?理想情况下,我可以访问Thread.threadLocals映射,但它受包保护.
我需要这个的原因是我需要检查线程,因为它们被返回到线程池以确保已正确清理ThreadLocals.也许有另一种方法可以做到这一点?
jar*_*ski 11
列表ThreadLocals和Clearing ThreadLocals可以通过使用reflection(和setAccessible()标志)来覆盖JVM的常用权限来完成.出于显而易见的原因,当所有安全机制到位时,这不可用.
您可以使用afterExecute线程池的方法来执行任何清理(重新初始化?),只要您知道要清理哪些变量即可。
否则,您可以使用反射 - 从线程内部,迭代您感兴趣的类的声明字段,并且对于每个类型为 ThreadLocal 实例的字段,set它都位于initialValue您关心的对象上。
| 归档时间: |
|
| 查看次数: |
6730 次 |
| 最近记录: |