問題來了,當我看到這個代碼:使用java.util.concurrent.Concurrent *容器提供的volatile時會發生什麼?
private static volatile ConcurrentHashMap<String, String> cMap = null;
static {
cMap = new ConcurrentHashMap<String, String>();
}
對我來說,它看起來像揮發性有多餘的,因爲容器是ConcurrentHashMap其根據JavaDoc已經同步放,DUH的類使用cMap只實例化它一次,並沒有任何設置或獲取它的方法。
我看到揮發性此處提供的唯一的事情是,如果我將設置CMAP在不久的將來,引用新的對象,這些讀取和寫入操作將被同步。
我錯過了什麼嗎?
是的,使它最終是有道理的。 – Bleadof 2010-09-08 14:25:30