Java線程同步(二)

jvm內存模型:多線程

1.jvm的主內存是多線程共享的;併發

2.每一個線程都有本身的工做內存,線程的工做內存是有限制的;jvm

 

當線程操做某個對象時,執行順序:線程

1.從主內存複製變量(Atm對象)到當前工做內存 ;htm

2.執行代碼,改變共享變量值;對象

3.用工做內存數據刷新主存相關內容;排序

 

多線程的可見性和可排序性:內存

1.可見性就是在多核或者多線程運行過程當中內存的一種共享模式,在JMM模型裏面,經過併發線程修改變量值的時候,必須將線程變量同步回主存事後,其餘線程纔可能訪問到。get

2.可排序性提供了內存內部的訪問順序,在不一樣的程序針對不一樣的內存塊進行訪問的時候,其訪問不是無序,好比有一個內存塊,A和B須要訪問的時候,JMM會提供必定的內存分配策略有序地分配它們使用的內存,而在內存的調用過程也會變得有序地進行,內存的折中性質能夠簡單理解爲有序性。而在Java多線程程序裏面,JMM經過Java關鍵字volatile來保證內存的有序訪問。同步

相關文章
相關標籤/搜索