五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網 會員登陸 & 注冊

千鋒教育2023版Java面試寶典Java面試200題(含美團、字節(jié)、阿里大廠真

2023-07-15 10:00 作者:預見未來c  | 我要投稿

在并發(fā)編程中使用HashMap可能導致程序死循環(huán)。而使用線程安全的HashTable效率又非常低下,基于以上兩個原因,便有了ConcurrentHashMap的登場機會

  • 線程不安全的HashMap

多線程環(huán)境下會導致HashMap的 Entry鏈表形成環(huán)形數據結構,一旦形成環(huán)形數據結構,Entry的next節(jié)點永遠不為空,調用.next() 時就會產生死循環(huán)獲取Entry。

  • 效率低下的HashTable

HashTable是使用 synchronized來保證線程安全,當線程1使用put進行元素添加,線程2不但不能使用put方法添加元素,也不能使用get方法來獲取元素,讀寫操作均需要獲取鎖。

  • 分段鎖的ConcurrentHashMap

在ConcurrentHashMap中,將數據分成一段一段地存儲,然后給每段數據都配一把鎖,當線程占用鎖訪問其中一段數據的時候,其他段的數據也能被被其他線程訪問。

  • ConcurrentHashMap的幾個特點
  1. 默認數組大小為16
  2. 擴容因子為0.75,擴容后數組大小翻倍
  3. 當存儲的node總數量>= 數組長度“擴容因子時,會進行擴容 (數組中的元素、鏈表元素、紅黑樹元素都是內部類Node的實例或子類實例,這里的node總數量是指所有put進map的node數量)
  4. 當鏈表長度>=8且數組長度<64 時會進行擴容
  5. 當數組下是鏈表時,在擴容 的時候會從鏈表的尾部開始rehash
  6. 當鏈表長度>=8且數組長度>=64時鏈表會變成紅黑樹
  7. 樹節(jié)點減少直至為空時會將對應的數組下標置空,下次存儲操作再定位在這個下標t時會按照鏈表存儲
  8. 擴容時樹節(jié)點數量<=6時會變成鏈表
  9. 當一個事物操作發(fā)現(xiàn)map正在擴容時,會幫助擴容
  10. map正在擴容時獲取 (get等類似操作)操作還沒進行擴容的下標會從原來的table獲取擴容完畢的下標會從新的table中獲取

千鋒教育2023版Java面試寶典Java面試200題(含美團、字節(jié)、阿里大廠真的評論 (共 條)

分享到微博請遵守國家法律
亳州市| 寿宁县| 高青县| 如东县| 平舆县| 交口县| 介休市| 顺义区| 峨边| 会理县| 腾冲县| 都匀市| 太原市| 佛山市| 来凤县| 安远县| 嘉禾县| 聊城市| 抚松县| 读书| 营山县| 台前县| 辉南县| 西贡区| 信宜市| 泗洪县| 东辽县| 华宁县| 诸暨市| 平邑县| 历史| 临沭县| 沐川县| 嘉黎县| 武平县| 荥经县| 运城市| 忻城县| 喀喇沁旗| 叙永县| 阿合奇县|