国产探花免费观看_亚洲丰满少妇自慰呻吟_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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 筠连县| 兴安县| 贵州省| 深圳市| 阿克陶县| 舟山市| 阿鲁科尔沁旗| 慈利县| 额济纳旗| 海城市| 云梦县| 郸城县| 西昌市| 阜新市| 康乐县| 柳江县| 惠州市| 平山县| 乐都县| 政和县| 阳山县| 墨江| 宜都市| 安龙县| 洛扎县| 运城市| 社会| 应用必备| 华阴市| 石台县| 锦州市| 镇赉县| 昌宁县| 阿鲁科尔沁旗| 怀安县| 山阳县| 天津市| 乌兰浩特市| 翁源县| 吉首市| 疏勒县|