一、Java內存模型中的happen-before是什麼
Happen-before關係,是Java內存模型中保證多線程操作可見性的基礎。具體表現爲:
- 線程內執行的每個操作,都保證happen-before後面的操作。這就保證了基本的程序執行順序,是開發者在書寫程序時的基本約定。
- 對於volatile變量,對於它的寫操作,保證happen-before在隨後對該變量的讀取操作
- 對於一個鎖的解鎖操作,保證happen-before加鎖操作
- 對象構建完成,保證happen-before於finalizer的開始操作
- 甚至是類似線程內部操作的完成,保證happen-before其他Thread.join()的線程等。
二、爲什麼需要JMM,它試圖解決什麼問題
三、JMM是如何解決可見性等各種問題的