为什么ThreadLocal字段应该至少调用一次remove方法

在使用ThreadLocal的时候,发现idea给我提示了如下信息

idea提示我,ThreadLocal字段应该至少调用一次remove()方法。但是原因是什么呢?带着这个疑问我查询了万能的百度,找到了答案。

原因是服务器在创建和销毁线程上花费的时间和消耗的系统资源是相当大的,甚至可能要比花在实际处理实际的用户请求的时间和资源要大的多。所以在通常来说会使用线程池,在一个线程使用完毕之后不做销毁操作而是归还线程到线程池中,等下一次有需求直接从线程池获取线程来进行业务操作而不是新创建线程。

说到这里开头的疑问就解决了,因为我们的线程很大概率会重复使用,如果我们没有在业务结束之后对ThreadLocal进行remove操作的话,可能就会把上一次业务的垃圾数据带到下一次业务中去,导致业务发生问题。


觉得内容还不错?打赏个钢镚鼓励鼓励!!👍