Java内存储器模型和线程的关系

Java内存模型和线程的关系

什么叫Java内存模型?http://baike.baidu.com/view/8657411.htm

通过访问以上的URL,我们了解了Java内存模型的概念。

简单来说,每个线程操作变量的时候,都会从主内存中拷贝变量的副本保存到自己的工作内存中,然后计算,最后再存入工作内存中。

问题来了,如果有两个线程:线程A和线程B。线程A从主内存中取出变量count的值为1,然后进行加1操作,这时线程B也从主内存中取count进行加2操作。然后线程A把2存入主内存的变量count内,线程B也存入,这样线程A所做的操作就被覆盖了。

为了解决上诉问题,可以使用synchronize将两个线程同步起来,这样就不会冲突了。