在库中,我有一些带有一些对象的ThreadLocal
变量。我想在一个数据结构中累积所有这些对象,并在需要时能够迭代它们。另一方面,当应用程序场景包括数千个线程的创建和死亡时,我不希望此数据结构受到污染(此外,这可能会导致内存泄漏)。因此,解决方案应该从对象中清除数据结构,从本地到死线程。
我认为解决方案应该与WeakHashMap
中的WeakReference<Thread>
类似,其中Thread
应该另外检查Map.values()
是否在常规清除过程中不活动。迭代在$scope
上完成。
是否存在此类数据结构的现有实现?或者对我的问题有一些更好的解决方案?