日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

.以及JDK1.5ConcurrentHashMap新特性

發布時間:2024/10/12 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .以及JDK1.5ConcurrentHashMap新特性 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、HashMap和Hashtable的區別

先看2個類的定義

結論:可見Hashtable 繼承自 Dictiionary 而 HashMap繼承自AbstractMap

Hashtableput方法如下:

注意1 方法是同步的
注意2 方法不允許value==null
注意3 方法調用了key的hashCode方法,如果key==null,會拋出空指針異常 HashMap的put方法如下

HashMapput方法如下:

注意1 方法是非同步的
注意2 方法允許key==null
注意3 方法并沒有對value進行任何調用,所以允許為null

總結:

HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。

最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現同步,而HashMap?就必須為之提供外同步(Collections.synchronizedMap)。

二、ConcurrentHashMap新特性

ConcurrentHashMap出現問題原因:HashMap不是線程安全的,因此多線程操作時需要格外小心。

ConcurrentHashMap新特性:效率比Hashtable高,并發性比hashmap好。結合了兩者的特點。

ConcurrentHashMap如何實現線程安全:

從ConcurrentHashMap代碼中可以看出,它引入了一個“分段鎖”的概念,具體可以理解為把一個大的Map拆分成N個小的HashTable,根據key.hashCode()來決定把key放到哪個HashTable中。

在ConcurrentHashMap中,就是把Map分成了N個Segment,put和get的時候,都是現根據key.hashCode()算出放到哪個Segment中。

?ConcurrentHashMap中主要實體類就是三個:ConcurrentHashMap(整個Hash表),Segment(桶),HashEntry(節點)。

?get 方法:

?

put方法put 操作一上來就鎖定了整個segment,這當然是為了并發的安全,修改數據是不能并發進行的。

segment里面才是真正的hashtable,即每個segment是一個傳統意義上的hashtable。

remove方法:remove 操作非常類似put

三、知識點掃盲

1. hashcode()eaquals()區別

一般來講,equals方法是給用戶調用的,如果你想判斷2個對象是否相等,你可以重寫equals方法,然后在代碼中調用,就可以判斷他們是否相等了。簡單來講,equals方法主要是用來判斷從表面上看或者從內容上看,2個對象是不是相等。舉個例子,有個學生類,屬性只有姓名和性別,那么我們可以認為只要姓名和性別相等,那么就說這2個對象是相等的。

hashcode方法一般用戶不會去調用,比如在hashmap中,由于key是不可以重復的,他在判斷key是不是重復的時候就判斷了hashcode這個方法,而且也用到了equals方法。這里不可以重復是說equals和hashcode只要有一個不等就可以了!所以簡單來講,hashcode相當于是一個對象的編碼,就好像文件中的md5,他和equals不同就在于他返回的是int型的,比較起來不直觀。我們一般在覆蓋equals的同時也要覆蓋hashcode,讓他們的邏輯一致。舉個例子,還是剛剛的例子,如果姓名和性別相等就算2個對象相等的話,那么hashcode的方法也要返回姓名的hashcode值加上性別的hashcode值,這樣從邏輯上,他們就一致了。

2.關鍵字volatite?

Java 語言提供了一種稍弱的同步機制,即 volatile 變量.用來確保將變量的更新操作通知到其他線程,保證了新值能立即同步到主內存,以及每次使用前立即從主內存刷新. 當把變量聲明為volatile類型后,編譯器與運行時都會注意到這個變量是共享的.

volatile 變量對所有線程是立即可見的,對 volatile 變量所有的寫操作都能立即反應到其他線程之中,換句話說:volatile 變量在各個線程中是一致的,所以基于 volatile 變量的運算是線程安全的.?

四、 參考來源

1.?http://blog.csdn.net/shohokuf/article/details/3932967

2.?http://blog.csdn.net/wl_ldy/article/details/7228127

3.?http://blog.csdn.net/xuefeng0707/article/details/40834595

4.?http://www.cnblogs.com/yakun/p/3589437.html

?

轉載于:https://www.cnblogs.com/xumaodun/p/4915634.html

總結

以上是生活随笔為你收集整理的.以及JDK1.5ConcurrentHashMap新特性的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩国产欧美综合 | 人妖videosex高潮另类 | 91麻豆精品国产91久久久久久久久 | 无码人妻丰满熟妇啪啪 | 欧美a级大片 | www日韩精品 | 国产精品第5页 | 中文字幕黑丝 | 国产精品无码久久久久 | 亚洲av午夜精品一区二区三区 | 日本不卡一区二区三区在线观看 | 5a毛片| 青青草原免费观看 | 91九色porn| 激情 小说 亚洲 图片 伦 | 日韩中文在线字幕 | 国内视频一区二区三区 | 久久久999精品 | 久久美女精品 | 91福利小视频 | 欧美18aaaⅹxx | 人人妻人人澡人人爽人人欧美一区 | 射一射| 麻豆网址 | 国产av成人一区二区三区高清 | 亚洲永久免费av | 91九色国产 | 男女做爰猛烈吃奶啪啪喷水网站 | 欧美xxxx性xxxxx高清 | 国产成人av免费 | 精品人妻一区二区三区含羞草 | 国产美女91呻吟求 | 粉嫩av懂色av蜜臀av分享 | 91精品国产综合久久久蜜臀图片 | www欧美色| 婷婷六月网 | 东北少妇不带套对白 | 亚洲欧美日韩色 | 超碰神马| 国产精品久久久久久久免费大片 | 羞羞色视频 | 六月色丁香 | 美腿丝袜av | 91国内精品久久久久 | 亚洲av激情无码专区在线播放 | 亚洲黄色中文字幕 | 嫩草www | 亚洲欧美网站 | 91网站观看 | 美国av片| av男人网| 国产精品久久中文字幕 | 极品少妇视频 | www视频在线观看 | 123超碰| 亲子乱aⅴ一区二区三区 | 日本韩国欧美中文字幕 | 啪啪网站免费 | 亚洲欧洲无码一区二区三区 | 一级黄av | 久久毛片基地 | 日本肉体xxxⅹ裸体交 | 日韩大片免费观看 | 东京久久久| 国产小视频网址 | 麻豆免费av| 伊人一二三 | 久久看毛片 | 国产精品7| 在线欧美 | 超级变态重口av番号 | 欧美成人性生活视频 | 精品少妇白浆小泬60P | 国产你懂得 | juliaann精品艳妇hd| 黄色网址多少 | www.17c.com喷水少妇| 夜夜天天 | 波多野结衣亚洲一区 | 国产网站入口 | 欧美特级黄色录像 | 操女网站 | 韩国伦理片免费看 | 国产精品第8页 | 久久网一区 | 亚洲乱色熟女一区二区 | 99久久精品免费 | 精品91av| 久草影视在线 | 四虎视频国产精品免费 | 国产黄网在线观看 | 91精东传媒理伦片在线观看 | 嫩草视频在线观看免费 | 日韩中文字幕免费观看 | 国产成人激情视频 | 国产白浆在线 | 色综合天天综合网天天狠天天 | 亚av在线 | 怡红院一区二区 |