多线程切换, 用户数据丢失问题

1.问题描述

进行导出时, 会从线程里取出用户数据, 但是因为导出开启了多线程, 导致用户数据可能取不到
在这里插入图片描述

2.问题原因

1.问题还是多线程, 开启了多线程后, 我从线程取数据, 用户数据不再当前线程. 而且偶尔能取到, 就是因为线程 切换, 不可控. 谁知道当前线程是不是存用户数据的线程.
2.前端传了个token, token包含用户参数, 然后由线程创建实例对象, 给对象设置属性值.
3.问题是, 导出开启了1 2 3线程, 然后 1线程有user数据, 2 3线程是null, 然后我当前的线程如果是1就取到用户数据了, 如果是2 3线程取到的就是null

3.解决方式

1.把参数返回给前端, 然后由前端来传参, 避免线程切换导致的数据被冲掉
2.用session存储数据, 中央session是基于Redis实现的, 用户数据是在缓存里面. 并且由Redis服务器保存, 是公用的. 不会受到线程影响

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值