1. 程式人生 > >談談我對JAVA記憶體可見性的理解 JAVA

談談我對JAVA記憶體可見性的理解 JAVA

首先要明確一點,每個執行緒都有屬於自己的工作記憶體。

出了執行緒自己擁有的工作記憶體外,還有公共記憶體。

假設我們有一個變數i,然後我們啟動兩個執行緒,這個時候i就會被拷貝成兩份副本分別給兩個執行緒的工作記憶體。

然後,這兩個執行緒如果對i進行操作,系統首先會將改變後的i先寫到執行緒的工作記憶體,然後再寫到公共記憶體中。

如果一個執行緒改變了i的值,沒有將它及時寫入公共記憶體中,就會造成兩個執行緒資料不一致。