平時工作中對于多線程的應(yīng)用并不太多,但是不能說工作中不應(yīng)用就可以對此不去了解,至少要做的知道有這么個東西,主要是作什么的,這樣有助于看其它人寫的代碼。提到這個volatile,一般都會想到并發(fā),同步,鎖之類,但要想搞清楚需要看看下面一些知識。
處理器,高速緩存,主內(nèi)存之間的關(guān)系
高速緩存的作用是什么?
由于處理器與主內(nèi)存在處理數(shù)據(jù)的速度上有數(shù)量級的差異,所以引入了比主內(nèi)存速度更快的高速緩存。處理器從主內(nèi)存中讀取數(shù)據(jù)放到高速緩存中做交互運算,最后回寫到主內(nèi)存中。
引入高速緩存會帶來哪些問題?
使計算機系統(tǒng)更加復(fù)雜,但相對帶來的優(yōu)點還是值得的。
緩存一致性問題
多個處理器如果操作的是同一個主內(nèi)存中的變量,那么就會出現(xiàn)以誰為準的問題。這就要靠一些規(guī)定的協(xié)議來維護。
JAVA線程,工作內(nèi)存,主內(nèi)存之間的關(guān)系