2
衆所周知,數組即使在易失性時,在讀取或寫入元素時不提供易失性語義,併發訪問數組的第k個元素需要顯式易失性讀取。這種易失性讀取通過Unsafe.getObjectVolatile()
執行。關於Unsafe.getObjectVolatile的用法
我想知道,只聲明一個對象,不是沒有volatile的數組,使用Unsafe.getObjectVolatile()
來讀取它可以得到與使用volatile聲明它相同的效果?
你的問題沒有編譯:)至少不在我的腦中。 –
[是](http://permalink.gmane.org/gmane.comp.java.jsr.166-concurrency/12972)。如果您查看虛擬機中的源代碼,您會發現它們發出讀取障礙。 –
只有當所有對該字段的寫入都使用'putObjectVolatile'時。但你爲什麼要這樣?爲什麼不簡單地聲明字段「volatile」? – Holger