并发编程(四)__ConcurrentHashMap
? ? ? ? ? ? ? ?? Java 5.0 在 java.util.concurrent 包中提供了多種并發容器類來改進同步容器
的性能。
? ConcurrentHashMap 同步容器類是Java 5 增加的一個線程安全的哈希表。對
與多線程的操作,介于 HashMap 與 Hashtable 之間。內部采用“鎖分段”
機制替代 Hashtable 的獨占鎖。進而提高性能。
? 此包還提供了設計用于多線程上下文中的 Collection 實現:
ConcurrentHashMap、ConcurrentSkipListMap、ConcurrentSkipListSet、
CopyOnWriteArrayList 和 CopyOnWriteArraySet。當期望許多線程訪問一個給
定 collection 時,ConcurrentHashMap 通常優于同步的 HashMap,
ConcurrentSkipListMap 通常優于同步的 TreeMap。當期望的讀數和遍歷遠遠
大于列表的更新數時,CopyOnWriteArrayList 優于同步的 ArrayList。
ConcurrentHashMap在jdk1.5中采用了鎖分段機制,在jdk1.8中,采用了CAS算法
鎖分段機制如下,其中復合操作中,contains()、put()兩個方法用的而是不同的鎖,多線程的之后仍然會出現問題
?
以下是hashtable會出現的問題,在復合操作中
?
?
?
轉載于:https://www.cnblogs.com/dreamHighMjc/p/8497194.html
總結
以上是生活随笔為你收集整理的并发编程(四)__ConcurrentHashMap的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 并发编程(一)__volatile关键字
- 下一篇: 从汉诺塔讲递归的思考方式