jvm內存模型:多線程
1.jvm的主內存是多線程共享的;併發
2.每一個線程都有本身的工做內存,線程的工做內存是有限制的;jvm
當線程操做某個對象時,執行順序:線程
1.從主內存複製變量(Atm對象)到當前工做內存 ;htm
2.執行代碼,改變共享變量值;對象
3.用工做內存數據刷新主存相關內容;排序
多線程的可見性和可排序性:內存
1.可見性就是在多核或者多線程運行過程當中內存的一種共享模式,在JMM模型裏面,經過併發線程修改變量值的時候,必須將線程變量同步回主存事後,其餘線程纔可能訪問到。get
2.可排序性提供了內存內部的訪問順序,在不一樣的程序針對不一樣的內存塊進行訪問的時候,其訪問不是無序的,好比有一個內存塊,A和B須要訪問的時候,JMM會提供必定的內存分配策略有序地分配它們使用的內存,而在內存的調用過程也會變得有序地進行,內存的折中性質能夠簡單理解爲有序性。而在Java多線程程序裏面,JMM經過Java關鍵字volatile來保證內存的有序訪問。同步