HashMapが正しく動作しないことがあります。原因を教えてください。
Interstage Application Serverのよくあるご質問を検索できます。
Interstage Application Server の技術情報はこちら
- HashMapが正しく動作しないことがあります。原因を教えてください。
- java.utilパッケージにあるCollectionインタフェースやMapインタフェースを実装したクラス(以下、コレクションクラス)の一部(ArrayList、HashMap、HashSetなど)は、同期化機構を実装していません。このため、複数のスレッドから同一のコレクションクラスにアクセスして、データの追加や削除などの操作を行うと、内部データに矛盾が発生します。その結果として、システム異常を引き起こす場合があります。複数のスレッドから、コレクションクラスを操作する場合は、以下のいずれかの処置を行ってください。
コレクションクラスオブジェクトをカプセル化し、同期処理機能をもつクラスを定義する。
コレクションクラスを拡張し、同期処理を行うメソッドを定義する。
CollectionsクラスのsynchronizedXXXメソッドを使って、コレクションクラスをラッピングする。
VectorやHashtableなど同期化機構を持つクラスに置き換える。
詳細については、JDKドキュメンテーションのjava.utilパッケージを参照してください。
製品・サービス区分 | Interstage | ||||||
---|---|---|---|---|---|---|---|
製品・サービス情報 |
|
||||||
アンサー種別 | 運用/保守 |