请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于使用ThreadLocal存放用户ID的问题

老师,关于ThreadLocal的使用还有一些疑问:
我在以前公司是这样设计的:
1、用户登录后,生成一个Authorization的token返回给前端,前端将token缓存起来,每次请求都会携带这个请求头,这个token携带着用户ID的信息。
2、后端获取用户信息的时候,会使用工具类从request中获取token,然后通过token解析获取用户ID,最后通过用户ID获取缓存中的用户信息。

我理解的ThreadLocal应该是用于线程间的数据隔离,如果这样的话,使用ThreadLocal去缓存共享信息,而一个用户会话会创建多个请求线程,这些线程之间却不共享用户信息,这样会不会导致一些问题呢?

正在回答 回答被采纳积分+3

1回答

RubinChu 2025-06-27 21:07:57

如果一个逻辑里面存在多线程调度的话,thread local 就不可以了,但是用户的每次请求都是 Tomcat 容器的一个线程去处理 处理完再归还线程的 所以只要逻辑没有多现线程 都是没问题的哈

0 回复 有任何疑惑可以回复我~
  • 景庆 #1
    老师我还有一个问题,UserIdUtil中使用ThreadLoacl存放用户Id,但是这个ThreadLocal一直都没有清理,会导致内存泄漏么?
    回复 有任何疑惑可以回复我~ 2025-08-25 00:21:50
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号