質(zhì)問のとおり、ConcurrentHashMap のような高パフォーマンス クラスの具體的なビジネス使用シナリオは何ですか?
通常、コードを書くときに最もよく使用するのは HashMap であり、それに慣れています
でも、Javaには他にも高機能なMapがあるのですが、普段はあまり使わないような気がします
Baidu で検索したところ、HashMap と ConcurrentHashMap の違いしかわかりませんでした
しかし、どの具體的なビジネス利用シナリオでこれらのクラスが使用されるのかはわかりません
少し混亂しているので、先輩方にアドバイスをいただければ幸いです、ありがとうございます
ConcurrentHashMap は、同時実行を防止するための java.util.concurrent パッケージの下のツール クラスです。ビジネス用途では、獨自の同時実行クラスで ThreadLocal を?qū)g裝することもできます。 。 。
主にマルチスレッドで使用されます。以前のバージョンの Java では、同期された同期ブロックが使用されていましたが、ロックや解放などの問題を解決するのは簡単ではありませんでした。すべてが正式に Java で記述されたので、マルチスレッドに注目してください。 。 。
たとえば、ビジネス シナリオでは、會社の人事情報がマルチスレッド データベースに保存されている場合、java.util.List を使用すると、各スレッドのデータが不整合になります。この場合、同時実行ツールを使用する必要があります。クラス。注意すべき主な點は、寫
データを読み取るときは問題にならないということです。 。 。
ConcurrentHashMap は、複數(shù)のスレッドによるアクセス用に特別に設(shè)計されています。例:
リーリー同時にログインおよびログアウトするユーザーが多數(shù)いる場合、onUserSignIn()
和 onUserSignOut()
同時に呼び出されるスレッドが多數(shù)存在します。
お誘いありがとうございます。
まず知っておくべきこと:
複數(shù)のスレッドで保護されていないオブジェクトに対する操作を?qū)g行すると、全員のステータスが不一致になります。
內(nèi)部の要素が特定の要件を満たしている、特定の數(shù)以上であるなど、特定の條件下であれば、複數(shù)のスレッドを開いて通常の hashMap を配置および削除できます。
ConcurrentHashMap
は、jdk 同時実行パッケージで提供される同時マップです。これにより、複數(shù)のスレッドがオブジェクトを操作するときにオブジェクトのコピーの不整合を効果的に防ぐことができます。
百度でシーンを検索できます。
その違いは言うまでもありません。
スレッドの安全性を確保するために、通常は Synchronize キーワードを使用します。ConcurrentHashMap を使用すると、面倒な Synchronize メソッドを使用する必要がなくなります。また、ConcurrentHashMap は通常、マルチスレッド狀況で使用されます。すべてのマルチスレッドがこの同時実行ツール クラスを使用できるわけではありません。