为什么使用ThreadLocal.get()后需要clear()

  在开发web项目中,使用ThreadLocal在一个线程中存储了一个变量x时,如果你没有在get()后进行clear()操作:那么当你再次从线程池中拿到这个线程时,这个线程对象仍然保存有变量x。

springboot中server.tomcat.min-spare-threads中的默认值为10,如果你没有clear(),那么每十个请求后(在请求数相对较少时),你就会拿到原来的线程以及存储在线程中的变量。

上一篇:java基础之ThreadLocal


下一篇:核心知识-ThreadLocal介绍+经典应用场景