ThreadLocal是Java所提供的线程本地存储机制,由ThreadLocalMap来实现的。如果在线程池中使用ThreadLocal会造成内存泄露,因为当ThreadLocal对象使用完之后,应该把设置为key、value,也就是Entry对象进行回收,但线程池中的线程不会回收,而线程对象是通过强引用指向ThreadLocalMap,ThreadLocalMap也是强引用指向Entry对象,线程不被回收,Entry对象就不会被回收,从而出现内存泄露,解决方案是,使用了ThreadLocal之后,手动调用ThraedLocal的remove方法,手动清除Entry对象。
ThreadLocal
最新推荐文章于 2024-08-05 21:34:26 发布