如果觉得我的文章还不错的话就点个赞,关注一波,转发收藏吧,另外可以微信搜索【佘凡架构师】阅读更多的好文章,获取我为大家准备的资料。
内存模型描述了程序中各个变量(实例域、静态域和数组元素)之间的关系,以及在实际计算机系统中将变量存储到内存和从内存中取出变量这样的底层细节,对象最终是存储在内存里面的,这点没有错,但是编译器、运行库、处理器或者系统缓存可以有特权在变量指定内存位置存储或者取出变量的值。【JMM】(Java Memory Model的缩写)允许编译器和缓存以数据在处理器特定的缓存(或寄存器)和主存之间移动的次序拥有重要的特权,除非程序员使用了volatile或synchronized明确请求了某些可见性的保证。—百度百科
Java内存模型其实就是描述了CPU从主内存中读取数据,处理完毕后将数据回传给主内存的一系列过程。期间还包括多个内存变量在不同的CPU同时处理产生的一系列问题,如何解决以及保证可见性,有序性。
JMM有八大指令:read,load,use,assign,store,write,lock,unlock。

让我们来简单描述一下JMM的运行过程




