ConcurrentHashMap は HashMap クラスに非常に似ていますが、ConcurrentHashMap は内部で維持される並行性を提供する点が異なります。これは、マルチスレッド アプリケーションで ConcurrentHashMap にアクセスするときに、ブロックを同期する必要がないことを意味します。
//Initialize ConcurrentHashMap instance
ConcurrentHashMap<String, Integer> m = new ConcurrentHashMap<String, Integer>();
//Print all values stored in ConcurrentHashMap instance
for each (Entry<String, Integer> e : m.entrySet())
{
system.out.println(e.getKey()+"="+e.getValue());
}
上記のコードは、アプリケーションのマルチスレッド環境で妥当に有効です。私が「合理的に有効」と言っている理由は、上記のコードはスレッド セーフを提供しますが、それでもアプリケーションのパフォーマンスを低下させる可能性があるからです。また、ConcurrentHashMap は、スレッド セーフを確保しながらパフォーマンスを向上させるために導入されました。
パフォーマンスを向上させるために、必要に応じて次のパラメーターを調整できます。