我知道这个类似的问题,但我的问题涉及 ThreadLocal 清理的特定情况。
为了在线程基础上维护状态,我将(未知)数量的 ThreadLocals 存储在静态向量中。有时,“贪婪”线程需要更多可用的 ThreadLocals,因此向量大小会增加。虽然在我的场景中使用 ThreadLocal.remove() 进行清理不是问题,但我想知道在贪婪线程死亡后是否有可能缩小 Vector 大小,或者它是否只会增长(或充其量保持不变) )。
澄清一下:我的理解是,对于任何给定的 ThreadLocal,每个线程都会存在不同的实例。那么,当从线程 A 访问它时,我的静态 Vector 怎么知道 ThreadLocal T 的值对于所有现有线程都是空的?
谢谢你的帮助