采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,你好。我在慕课网的一门多并发的课中看到,使用ThreadLocal后要执行remove方法,如果不执行,会导致内存泄漏。springmvc接受请求是使用线程池来处理请求吗?所以需要用完调用remove方法吗?
(1)是线程池执行请求(2)需要remove 防止内存泄漏
谢谢老师,如果是线程池执行,那下一次线程池调用的时候应该会覆盖之前的吧?那似乎就不需要调用remove方法了吧?麻烦老师再解答一下,万分感谢
除非你能保证池中的线程在开始执行请求之前都会重新覆盖threadlocal里面的值。即便如此也推荐在使用完以后进行remove,以防万一
非常感谢!
泄露是因为ThreadLocalMap被GC后有key=null而value是强引用不会被回收所以才泄露,ThreadLocalMap的set get romove方法调用时候都会清楚key = null 的记录
哦哦,所以最好还是remove一下吗?
按规定是要的
非常感谢
登录后可查看更多问答,登录/注册
各种缓存/JSR303参数检
1.4k 17
1.1k 17
1.2k 16
1.1k 13