ConcurrentHashMapの&Hashtableの

https://juejin.im/post/5df8d7346fb9a015ff64eaf9

スレッドセーフでは問題を解決する方法を、マルチスレッド環境でのHashMapがあります

  • 使用Collections.synchronizedMap(マップ)スレッドセーフマップのコレクションを作成します。
  • ハッシュ表
  • ConcurrentHashMapの

ハッシュ表:

HashMapのハッシュテーブルと比較して、マルチスレッドの場合に使用するのに適したスレッドセーフであるが、効率はあまり楽観的であることができます。

彼は、データ操作の時にロックされますので、効率が比較的低いです。

 

 

 

 HashMapの違いとハッシュテーブル:

ハッシュテーブルは、キーまたはnull値を許可されていない、キーのHashMapのはnullにすることができます

Hashtableの私たちが直接空売りのヌルポインタ例外を置くが、HashMapのは、特別な治療を行っているときので。

静的 最終 int型のハッシュ(オブジェクトキー){
     int型、H。
    リターン(キー== nullの)?0:(H = key.hashCode())^(H >>> 16 )。
}

使用してHashtableのフェイルセーフ機構(フェイルセーフ)は、このメカニズムは、読み取りデータは必ずしも最新のデータではない、あなたを行います。

あなたがnull値を使用する場合は、対応するキーが存在しないか、あなたは、もはやかつてのキーが同じ理由で存在しているかどうかのConcurrentHashMap、判断される(キー)を含めると呼ばれることができるため、空ではありませんしないかを決定することができなくなります。

  •  異なる実装:Hashtableの辞書クラスを継承し、HashMapのはAbstractMapのクラスを継承しています。

    辞書JDK 1.0が追加された一見誰もがこれを使用していない、私が使用していません。

  • 異なる初期容量:初期のHashMapの容量:16、Hashtableの初期容量:0.75:11、デフォルトの負荷係数の両方です。

  • 異なる膨張機構:空き容量が負荷率*、HashMapの二重電流容量拡張ルール、ハッシュテーブルダブル容量拡張ルール現在+ 1までの総容量よりも大きいです。

  • イテレータ異なる:イテレータでのHashMapのイテレータは、フェイルファストで、Hashtableの列挙子は、フェイルファストではありません。

    他のスレッドのような、HashMapの構造を変更したときにそう:追加、削除要素のHashtableがない一方であり、ConcurrentModificationExceptionは、例外がスローされます。

高速故障(フェイルファスト) オブジェクトのコレクションの内容のトラバーサルが変更された場合、オブジェクトのコレクションを反復処理を使用すると、Javaのコレクションのための仕組みであるが(変更、削除、追加)スローされます。同時変更例外。

イテレータの内容への直接アクセス横断中の変数modCountの収集および使用を横断。

コレクション中にコンテンツが変更された場合、それはmodCountの値を変更します横断されます。

横断要素は、次に、トラバースに戻されるexpectedmodCount modCount変数の値は、かどうかを検出する前に、次の反復がhashNext()/次()を使用するたびに、そうでない場合は例外をスローし、トラバースを終了します。

 
 
 
 
 
  • あなたの理解についてHashtableの話は、getのプロセスについての話はどこに置きます。ConcurrentHashMapの同じ質問。
  • 1.8最適化を何ですか?
  • スレッドセーフに行うにはどのように?
  • どのような問題は、安全でないにつながることができますか?
  • どのように解決するには?どのスレッドセーフなコンカレント・コンテナーはありませんか?
  • ConcurrentHashMapのは、どのように達成することですか?
  • ConcurrentHashMapの同時実行、なぜそんなに良く?
  • 1.7、1.8は何が違うのを達成するために?なぜこれを行いますか?
  • CASは何ですか?
  • ABAは何ですか?どのシーン、どのように解決するには?
  • 同期基本原理は何ですか?
  • 同期ロックのエスカレーション戦略
  • 高速障害が(フェイルファスト)有効で、どのようなシナリオ?セキュリティの失敗(フェイルセーフ)同じ質問。
  • ......

おすすめ

転載: www.cnblogs.com/lingcheng7777/p/12069761.html