約書亞·布洛克&合着者著名的Java Concurrentcy在實踐把forwards-的句子的含義是什麼?[ConcurrentHashMap無法鎖定爲獨佔訪問]?
這是第5章積木 -
...因爲一個ConcurrentHashMap不能鎖定爲獨家 訪問.....
我的理解是獨佔訪問指的是鎖定整個集合,每個線程在操作持續時間內持有一個鎖以使其成爲原子。
ConcurrentHashMap< String, String> map = new ConcurrentHashMap< String, String>();
public void getExclusiveAccess(){
synchronized (map) {
//....
}
}
即使這將是愚蠢做這樣的事情上面,但顯然獨家獲得通過相同的是可以實現的。
請建議。
作者爲什麼說ConcurrentHashMap不能鎖定爲獨佔訪問?
但我只考慮了我明確擁有獨佔訪問權的情況。 '同步(地圖){...}是否甚至保證這種情況下的獨佔訪問。 –
@ShirgillFarhanAnsari CHM實現本身不支持獨佔訪問。現在,您可以始終使用客戶端鎖定來強制執行獨佔訪問,當然......但這與'Collections.synchronizedMap()'有很大不同,後者在實現級別提供獨佔訪問權限。 – assylias