我有線程A維護數據結構(添加,刪除,更改ConcurrentHashMap中的值)。新線程是否具有完整內存 - 所有其他線程對共享對象的先前操作的可見性?
我有螺紋乙監聽套接字上偶爾創建線程Ç處理新的客戶端連接。
所有線程Ç旨意永遠只能從的ConcurrentHashMap讀取線程維護的(從不更新)。
是線程Ç保證看到由線程一個進行的所有更新,在的ConcurrentHashMap,螺紋Ç成立之前/被線程乙開始了嗎?
(編輯最後一句,使問題更加清晰:只關心更新到的ConcurrentHashMap)
是的,服從Java內存模型*(q.v。)*之前發生的條款。基本上你需要確保每個訪問都是'synchronized'或'java.util.concurrent'等價的。謝謝 – EJP