[解決済み] ConcurrentHashMapとCollections.synchronizedMap(Map)の違いは何ですか?
2022-03-16 13:53:31
質問
私は、複数のスレッドによって同時に変更されるマップを持っています。
Java APIには3種類のsynchronized Mapの実装があるようです。
-
Hashtable
-
Collections.synchronizedMap(Map)
-
ConcurrentHashMap
私が理解したところでは
Hashtable
は古い実装(時代遅れの
Dictionary
クラス) に適合するように後で修正されました。
Map
インターフェイスになります。一方
は
同期しているのですが、どうやら深刻な
スケーラビリティの問題
新しいプロジェクトにはお勧めできません。
しかし、他の2つはどうでしょうか?が返すMapにはどのような違いがあるのでしょうか?
Collections.synchronizedMap(Map)
と
ConcurrentHashMap
s? どちらがどのような状況に適しているのでしょうか?
解決方法は?
あなたのニーズに合わせて
ConcurrentHashMap
. これは、複数のスレッドからブロックする必要なく、同時に Map を変更することができます。
Collections.synchronizedMap(map)
はブロッキングするMapを作成し、パフォーマンスを低下させますが、(適切に使用すれば)一貫性は確保されます。
データの一貫性を確保する必要があり、各スレッドがマップの最新のビューを持つ必要がある場合は、2番目のオプションを使用します。パフォーマンスが重要で、各スレッドがマップへのデータ挿入のみを行い、読み込みはあまり頻繁に行われない場合は、最初のオプションを使用します。
関連
-
スタイルが読み込まれず、ブラウザコンソールでエラーが報告される。リソースはスタイルシートとして解釈されますが、MIMEタイプtext/htmlで転送されます。
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Java の配列を表示する最も簡単な方法は何ですか?
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] 並行処理と並列処理の違いは何ですか?
-
[解決済み] wait()とsleep()の違いについて
-
[解決済み] JDKとJREの違いは何ですか?
-
[解決済み] Java 8のmap()メソッドとflatMap()メソッドの違いは何ですか?
-
[解決済み] JavaにおけるSoftReferenceとWeakReferenceの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Java Exceptionが発生しました エラー解決
-
IllegalArgumentException この例外を解決する方法
-
myeclipseでコンパイルするとAntエラーが発生する javaの例外が発生しました。
-
jd-gui Java Exceptionが発生しました。
-
java Mail send email smtp is not authenticated by TLS encryption solution.
-
自動配線された依存性のインジェクションに失敗しました。
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
Exception: java.util.NoSuchElementException: 行が見つかりません
-
ブラウザでの大容量ファイルスライスアップロード(Javaサーバサイド実装)
-
コミットには何も追加されないが、未追跡のファイルが存在し、gitで未追跡のファイルに対する完璧な解決策