国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

CocurrentHashMap和Hashtable的區別

2019-11-14 21:21:01
字體:
來源:轉載
供稿:網友
CocurrentHashMap和Hashtable的區別

集合類是java API的核心,但是我覺得要用好它們是一種藝術。我總結了一些個人的經驗,譬如使用ArrayList能夠提高性能,而不再需要過時的Vector了,等等。JDK 1.5引入了一些好用的并發集合類,它們對于大型的、要求低延遲的電子商務系統來說非常的有用。這篇文章中將會看看ConcurrentHashMap和Hashtable之間的區別。

這篇文章是HashMap的工作原理以及HashMap和Hashtable的區別的后續。如果你已經讀過的話,那么我相信你讀完本篇之后會有所收獲。

為什么我們需要ConcurrentHashMap和CopyOnWriteArrayList

同步的集合類(Hashtable和Vector),同步的封裝類(使用Collections.synchronizedMap()方法和Collections.synchronizedList()方法返回的對象)可以創建出線程安全的Map和List。但是有些因素使得它們不適合高并發的系統。它們僅有單個鎖,對整個集合加鎖,以及為了防止ConcurrentModificationException異常經常要在迭代的時候要將集合鎖定一段時間,這些特性對可擴展性來說都是障礙。

ConcurrentHashMap和CopyOnWriteArrayList保留了線程安全的同時,也提供了更高的并發性。ConcurrentHashMap和CopyOnWriteArrayList并不是處處都需要用,大部分時候你只需要用到HashMap和ArrayList,它們用于應對一些普通的情況。

ConcurrentHashMap和Hashtable的區別

Hashtable和ConcurrentHashMap有什么分別呢?它們都可以用于多線程的環境,但是當Hashtable的大小增加到一定的時候,性能會急劇下降,因為迭代時需要被鎖定很長的時間。因為ConcurrentHashMap引入了分割(segmentation),不論它變得多么大,僅僅需要鎖定map的某個部分,而其它的線程不需要等到迭代完成才能訪問map。簡而言之,在迭代的過程中,ConcurrentHashMap僅僅鎖定map的某個部分,而Hashtable則會鎖定整個map。

文章轉自:http://blog.csdn.net/kobejayandy/article/details/16834311


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鹤峰县| 竹北市| 汶川县| 阿坝县| 永靖县| 疏勒县| 临桂县| 陆河县| 望谟县| 西藏| 德州市| 红河县| 津南区| 沁阳市| 沛县| 都匀市| 沿河| 都兰县| 城市| 专栏| 吉隆县| 缙云县| 锡林浩特市| 图片| 当涂县| 庐江县| 都匀市| 垫江县| 绥宁县| 长沙县| 台州市| 永登县| 财经| 罗定市| 青河县| 兴文县| 太和县| 饶河县| 云南省| 平塘县| 土默特左旗|