CurrentHashMapコレクションフレームワーク

I.はじめに

  • CurrentHashMapは使用して、スレッドセーフである数组+链表達成するためのキーと値の構造を。

II。原理

  1. なぜ、スレッドセーフCurrentHashMap必要がありますか?
    同時状況では、あなたが使用することができますが、Collections.synchronizedMap()スレッドセーフのセットを作成するためにマップを、または使用スレッドセーフHashtableが、両方の非効率的なので、効率と高性能CurrentHashMapと。

  2. 達成
    JDK1.7バージョン:数组+链表
    各セル(HashMapのと同様に)アレイセグメントHashEntryを維持し、(1)
    配列の各要素(2)は、それぞれ、セグメントロック(すなわち、セグメントのロックを使用);
    (3)あたりHashEntry次の修正値の揮発性および次のノードを採用しています。

    JDK1.8の最適化:
    (1)ロック・セグメント同期+ CASを使用して、元のを放棄し、
    (2)HashEntryノードに、まだ変更された値と揮発性次へと、
    リスト内の8ときに変換され、赤色よりも大きくなる(3)。黒の木。

公開された70元の記事 ウォンの賞賛4 ビュー6373

おすすめ

転載: blog.csdn.net/qq_44837912/article/details/104385040