[解決済み] ConcurrentHashMapとSynchronized HashMapの比較
2022-04-22 09:34:34
質問
ラッパークラスを使用する場合と何が違うのですか。
SynchronizedMap
を使用し、その上で
HashMap
と
ConcurrentHashMap
?
を変更できるようになっただけなのでしょうか?
HashMap
を繰り返しながら(
ConcurrentHashMap
)?
解決方法は?
同期
HashMap
:
-
各メソッドの同期には
object level lock
. そのため、synchMap の get と put メソッドはロックを取得します。 -
コレクション全体をロックすることは、パフォーマンスのオーバーヘッドになります。あるスレッドがロックを保持している間、他のスレッドはコレクションを使用することができません。
ConcurrentHashMap
は、JDK 5 で導入されました。
-
オブジェクトレベルでのロックはなく、もっと細かい粒度でのロックとなります。例えば
ConcurrentHashMap
であり、ロックはhashmap bucket level
. -
低レベルロックの効果は、同期化されたコレクションでは不可能な、読者と書込み者の同時進行が可能なことです。これにより、スケーラビリティが大幅に向上します。
-
ConcurrentHashMap
を投げない。ConcurrentModificationException
もし、あるスレッドが反復処理中にそれを変更しようとしたら。
この記事 Java 7: HashMapとConcurrentHashMapの比較 はとても良い読み物です。ぜひ読んでみてください。
関連
-
スタイルシートとして解釈されるリソースが、MIMEタイプtext/htmlで転送される。
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] JavaBeanとは何ですか?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] java.lang.UnsupportedClassVersionError を修正する方法。サポートされていないメジャー.マイナーバージョン
-
[解決済み] wait()とsleep()の違いについて
-
[解決済み] JDKとJREの違いは何ですか?
-
[解決済み】HashMap、LinkedHashMap、TreeMapの違いについて
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
スタイルが読み込まれず、ブラウザのコンソールでエラーが報告される。リソースはスタイルシートとして解釈されますが、MIMEタイプtext/htmlで転送されます。
-
final, finally, finalizeの違いについて話してください。
-
javaで非静的な解を静的な参照にすることができない
-
プロローグでのコンテンツは禁止されています
-
Eclipse起動エラー:javaは起動したが、終了コード=1を返した(ネット上の様々な落とし穴)
-
mavenプロジェクトのテストエラー java.lang.ClassNotFoundException: org.glassfish.jersey.client.ClientConfig の問題を解決する。
-
SocketTimeoutExceptionの解決方法です。読み込みがタイムアウトした
-
あるコードに出会いましたが、何に使うのか理解できません。 List<String> list = new ArrayList<String>() { { a
-
java 例外。Javaツールの初期化
-
IDEA パッケージステートメントの欠落