我有3个线程A,B,C
这三个线程都会把不同的数据写到同一个数据库中不同的表
各线程对应的数据为:
A:1------->数据库T1表
B:2------->数据库T2表
C:3------->数据库T3表
问题:写到各自对应的数据库后,发现数据不对,比如A线程应该把1写到T1表,但现在可能是T1和T2都是1,T3正确。这种情况10次操作会出现1,2次。请问线程之间数据会影响?
------解决思路----------------------
为了排查问题
建议先不要多线程,把写入数据入队列
由单独线程从队列中取数操作入库
这样可以检测出业务逻辑有没有bug
------解决思路----------------------
往不同的表写,线程之间是不会互相影响的。
因此需要检查你的业务逻辑,是不是有问题。
------解决思路----------------------
你如何确保里面的属性是不一样的呢?
------解决思路----------------------
1、检查是否有全局变量的存在
2、日志记录每个线程的数据和操作的表名,附带预期的数据和表名前缀做对比。
------解决思路----------------------
任何变量都是有作用域的,如果你滥用了它,自然就会被不同的线程访问到,从而产生你根本不法预想到的“任意随机发生”的错乱。所以如果你的数据错了,那么就看看你为某些变量定义的作用域是不是太“托大”了。
------解决思路----------------------
用到了多线程,线程函数却不给参数
我很难想象这东西会不出错