Jfinal ThreadLocal的使用问题

波总,麻烦问个问题,毎一个请求结束以后,是不是需要清除TheadLocal里存的信息,比如当前登的用户信息。

评论区

JFinal

2020-12-11 20:47

回答是看场景,如果是用 ThreadLocal 实现类似于缓冲区的功能,就不必 remove ,让其生命周期与线程池的 work 线程同样长

如果是为了实现在线程的一个调用流程中共享变量,而这个变量需要及时回收的话,需要用 remove()

JFinal

2020-12-11 20:48

你说的当前登录信息需要 remove ,因为这个对象在下次请求到来的时候,另一个线程无法再使用,否则你的 session 就串了

这是 java 基础,一定要自学好

xiaoye.huang

2020-12-11 21:19

好的,感谢提醒。波总,你所说的实现这种缓冲区的使用场景有哪些呢?

JFinal

2020-12-12 00:03

@xiaoye.huang jfinal 源代码中起码就有两处,这里是一处:
https://gitee.com/jfinal/jfinal/blob/master/src/main/java/com/jfinal/template/io/WriterBuffer.java

热门反馈

扫码入社