在类中定义了threadlocal变量以维护某些实例。设置并获取递归方法。当请求完成时,某种程度上我无法清除threadlocal变量(我已经以其他所有方式进行了分析。我无法清除threadlocal)。
我的问题是,如果我没有为每个请求清除threadlocal变量,将会发生什么?有什么影响?
最佳答案
Javadoc说:
例如,此处的the implementation由使用weak references作为 key 的HashTable支持。在这种情况下,关键是线程。如果线程终止,则映射中的条目将有资格进行垃圾回收。
仅当系统开始用尽内存空间时,垃圾回收才可能发生。但是,此注意事项适用于系统中的所有对象:何时开始回收对象取决于GC策略,该策略是VM特定的并且需要调整。
这是我对线程局部变量用法的好坏的看法:
关于java - 如果未清除ThreadLocal变量,将会发生什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10595053/