多线程计算相同的数据,结果为什么不稳定

多线程计算相同的数据,结果为什么不稳定。已经测试过了,如果是单线程的,结果就是稳定的,请问怎么回事?

多线程之间如果访问了相同数据的话,那么就需要做线程同步访问控制才能保证数据的一致性。
例如:i++操作,本质是三个操作读取i,i加1,然后将i的值写入内存中,中三个操作如果有两个操作跨线程了,那么就导致其他线程可能得到错误的结果。
所以多线程访问共享变量需要做同步处理。

脏数据,线程之间相互通信出问题了呗

多线程的时候,每个线程的执行顺序不一定,造成结果不一定,可以考虑加锁!

应该是线程之间变量冲突导致的,可以使用ThreadLocal封装变量,这样就可以实现线程间变量冲突。
下面是我整理的博客,里面有讲解ThreadLocal,希望对你有帮助~
http://blog.csdn.net/xiaoyao880609/article/details/51002928