多執行緒情況下的記憶體模型
多執行緒情況下,每個執行緒都會從主記憶體中讀取操作的資料,然後本地執行緒記憶體會從主記憶體複製一份再進行計算,計算完成之後再將結果寫入主記憶體。通常情況下讀改寫這個操作在多執行緒情況下會被其他執行緒加塞。最終使寫入主記憶體的計算結果與我們預期的不一致。要規避這種問題,那我們就要深入理解JMM和JUC程式設計。
JMM記憶體模型必須要保證的是可見性,原子性,有序性。上述記憶體模型是會提高程式的執行效率但是會導致多執行緒情況下資料的不一致。而我們高併發下既要保證資料的一致性也要保證程式的執行效率。如何去更好地做好java多執行緒程式設計,那我們就必須深入理解JUC程式設計(即java.util.current包)和JMM(java記憶體模型)。
下一篇將會介紹java輕量級同步機制關鍵字volatile;
最新評論
相關內容
- Java多執行緒,執行緒處於阻塞狀態時會佔用cpu資源嗎,導致阻塞的原因消失之後阻塞解除怎麼理解?
- JAVA如何停止當前執行緒並讓其他經過這個方法的執行緒繼續執行?
- java如何程式設計實現從鍵盤輸入10個數存入陣列,顯示出來並從中找出最大值?
- 如何使用動態代理實現Java面向切面程式設計?
- 有沒有學會了java等程式設計自己創業開公司的。分享一下經驗?
- 未來想往能源網際網路、人工智慧等方面發展,學程式設計的話是python還是java合適呢?
- 33歲了想學java程式設計,之前沒有軟體基礎,請問用處大嗎?
- java程式設計依賴關係幫忙解釋一下?
- java執行緒間通訊的幾種方式?
- java中如何使執行緒執行一定時間後停止?