记一次多并发下的bug

最近接手一个任务,完成后本地运行没有任何问题,测试也没有发现任何问题,于是上线。第二天上班后打开电脑满屏的客服反映问题,都是一个参数报错,导致服务无法正常使用。我重新在本地测试多次,放到测试服务器跑都没有发现参数有问题。最后没有办法,只能查看线上日志来排查问题。查了半天发现,报错的是一个成员变量,因为并发原因,导致参数变化太快,一个线程下来参数改变多次,就导致了最后参数的问题。随后把成员变量改为局部变量才解决完这个问题。所以记录一下,并发线程中任何情况下都不要使用成员变量,因为这个会使得线程变的不可控。

猜你喜欢

转载自www.cnblogs.com/zcydd/p/9352946.html