気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

スレッドセーフなMap ConcurrentHashMap

特徴

  • J2SE 5.0 で導入された ConcurrentHashMap クラスは、安全性に関する Hashtable の特長と、性能に 関する HashMap の利点を兼ね備えて
  • 機能仕様は Hashtable と同じでありながら、アクセスのたびにロック するようなことがありません。通常は複数のスレッドが同時にアクセス
  • valueを更新するような操作だと更新内容が喪失する可能性あり。
  • パフォーマンスはsynchronizedした時より良い。

詳しい仕様は以下がとても参考になる。 http://software.fujitsu.com/jp/technical/interstage/apserver/guide/pdf/concurrenthashmap-20120105.pdf

nullの扱い

HashMap:エントリーのキーや値に null を使用で可能
ConcurrentHashMap:使用不可

実装

ConcurrentHashMap map = new ConcurrentHashMap();
  • 宣言、参照などの仕方はHashMapとかとまったく同じ。

参考URL

ConcurrentHashMapを使うならatomicなメソッドを使おう - kencharosの日記