cpu模型
数据从硬盘加载-->主内存-->cpu 缓存-->寄存器--》cpu
JMM内存模型
java线程内存模型和cpu缓存模型类似,都是会把主内存的数据,拷贝到共享变量副本里面。
给大家举个例子看一下:
第一个线程一直没有结束,因为它把数据拷贝到自己的工作内存区域,不起作用。另外一个线程是看不到变量被修改的.
怎么解决哪?java里面volatile,保证线程之间修改过内存数据,其他线程可见性和有序性,但是不能保证原子性。保证原子性的是通过锁,机制来保证的。
数据从硬盘加载-->主内存-->cpu 缓存-->寄存器--》cpu
java线程内存模型和cpu缓存模型类似,都是会把主内存的数据,拷贝到共享变量副本里面。
给大家举个例子看一下:
第一个线程一直没有结束,因为它把数据拷贝到自己的工作内存区域,不起作用。另外一个线程是看不到变量被修改的.
怎么解决哪?java里面volatile,保证线程之间修改过内存数据,其他线程可见性和有序性,但是不能保证原子性。保证原子性的是通过锁,机制来保证的。