同期されていないものへの同時更新HashMap
は、明らかにライブロックやその他のデータ破損を引き起こす可能性があります。これを回避するには、並行バージョンを使用するか、同期メカニズムを実装する必要があります。
HashMap.get()への同時呼び出しは、再ハッシュのように HashMap の状態を変更できますか?
アップデート:
一部のコメンターは、データ構造の動作をつまらないものにするという理論的な喜びに加えて、質問の実際的な側面について疑問に思いました。
get()
の状態を変更しない場合HashMap
(および別の理由でライブロックを発生させることができない場合)、1 つのスレッドが事前に HashMap を作成し、多数のスレッドが HashMap から同時に読み取ることができます。同時読み取りが安全でない場合はConcurrentHashMap
、タイプに関係なく、すべてのマルチスレッド アクセスが必要です。