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

来源:8-9 查看分享详情(一)

Caesar_123

1天前

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

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

写回答

1回答

RubinChu

1天前

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

0
0

SpringBoot+Vue3+Element Plus打造私人分布式存储系统

SpringBoot+Vue3+Element Plus 仿百度网盘实战

277 学习 · 357 问题

查看课程