jvm内存模型:多线程
1.jvm的主内存是多线程共享的;并发
2.每一个线程都有本身的工做内存,线程的工做内存是有限制的;jvm
当线程操做某个对象时,执行顺序:线程
1.从主内存复制变量(Atm对象)到当前工做内存 ;htm
2.执行代码,改变共享变量值;对象
3.用工做内存数据刷新主存相关内容;排序
多线程的可见性和可排序性:内存
1.可见性就是在多核或者多线程运行过程当中内存的一种共享模式,在JMM模型里面,经过并发线程修改变量值的时候,必须将线程变量同步回主存事后,其余线程才可能访问到。get
2.可排序性提供了内存内部的访问顺序,在不一样的程序针对不一样的内存块进行访问的时候,其访问不是无序的,好比有一个内存块,A和B须要访问的时候,JMM会提供必定的内存分配策略有序地分配它们使用的内存,而在内存的调用过程也会变得有序地进行,内存的折中性质能够简单理解为有序性。而在Java多线程程序里面,JMM经过Java关键字volatile来保证内存的有序访问。同步