2011-08-20 62 views

回答

1

新開工線程將充當內存屏障針對特定線程。

所有其他線程將不得不同步訪問(通過輸入​​塊或獲取鎖)以查看更新的非最終非易失性變量。

1

引用http://download.oracle.com/javase/6/docs/api/java/util/concurrent/package-summary.html#MemoryVisibility

  • 呼叫開始上線之前發生在啓動線程的任何行動。

沿着與列出的其他效果:

  • 的解鎖監視器 的(同步塊或方法出口)之前發生的每個後續鎖(同步塊或方法 輸入)同一臺顯示器。而由於之前發生關係 是傳遞的,一個線程的解鎖 發生,之前的任何線程後續的所有操作鎖定該 顯示器之前的所有行動。

  • 到揮發性現場寫之前發生以後每 讀了同一領域的。寫入和揮發性字段讀取具有 類似的存儲器一致性的效果進入和離開顯示器, 但不意味着互斥鎖定。

所以是它具有相同的效果