项目实战15—登录之后我加入的课程调用接口报错
创始人
2025-05-29 19:54:59

现象1:
一天之内都会出现登录之后我加入的课程调用接口报错的情况,排查发现了域名不全的问题

在这里插入图片描述

而为什么会一天之内一直出现呢?首先存入redis的域名是不全的,是错误的,当然从redis中查询出来的也是错误的。下面的红框的代码里设置了存入redis失效的时间是一天。

在这里插入图片描述

那么域名为什么不全呢?
如下图,这里遇到了一个非线程安全的全局变量ArrayList,当new了一个显得ArrayList,向里面存值,但是ArrayList中之前的值还没有及时被清空,所以拼接出来的地址是错的。

在这里插入图片描述

问题清楚了,那么如何解决呢?
1.用线程安全的全局变量替换ArrayList。

线程安全的变量是什么目前还不太了解,后续更新……

2.加锁,保证同一时刻只能有一个线程访问变量

在多线程的情况下,有的线程在修改数据,有的线程在读取,所以读取出来的可能是错的,ArrayList线程是不安全的,所以出现了这种情况,可以选择加synchronized锁。

同时为了避免ArrayList内数据积累越来越多,而这些数据已经是没用的,所以下一次调用要及时用ArrayList.removeAll清空掉。

现象2:
每一次登录,都会重新创建一个对象,放到公共变量中,如果遇到了并发,这里的对象将会被大量创建,然后上一个对象会失去引用,等待垃圾回收器回收,这个等待期间可能会导致cpu飙升。
在这里插入图片描述

相关内容

热门资讯

健康过春节,营养年夜饭 ~2026~ 马年即将来临,“春节”是中国最重要的节日,今年又恰逢首次连休放假九天,走亲访友,亲人团...
林芝桃花节自由行全攻略:第一次... 林芝桃花节自由行全攻略:第一次去西藏看桃花,看这篇就够了 每年三月下旬到四月中旬,当西藏大部分地区还...
春节剩菜大改造!这样做,剩菜也... 年夜饭的丰盛,总让家家户户面临同样的“甜蜜烦恼”:吃不完的菜,倒掉可惜,留着又担心不健康。其实,只要...
官宣!四川又一条国家级户外运动... 2月10日,国家体育总局发布2026年第1号公告——“2026年春节假期户外运动精品线路”,我省“乐...