java內存模型

 

  在JDK1.2以前,java的內存模型實現老是從主存(即共享內存)讀取變量,是須要進行特別注意的。而在當前的java內存模型下,線程 能夠把變量保存本地內存(好比機器的寄存器)中,而不是直接在主存中進行讀寫。這就可能形成一個線程在主存中修改了一個變量的值,而另一個線程還在繼續使用它在寄存器中的變量值的拷貝,形成數據不一致java

   要解決這個問題,就要把變量聲明爲volatile,這就指示JVM,這個變量是不穩定的,每次使用它都到主存中進行讀取。說白了,volatile關鍵字的主要做用就是變量的可見性而後還有一個做用是防止指令重排序。線程

相關文章
相關標籤/搜索