5
ConcurrentHashMap値の反復はスレッドセーフですか?
ConcurrentHashMapの javadoc は次のとおりです。 通常、取得操作(getを含む)はブロックされないため、更新操作(putおよびremoveを含む)と重複する場合があります。取得は、その開始時に保留されている最後に完了した更新操作の結果を反映します。putAllやclearなどの集約操作の場合、同時取得は一部のエントリのみの挿入または削除を反映する場合があります。同様に、イテレータと列挙は、イテレータ/列挙の作成以降のある時点でのハッシュテーブルの状態を反映する要素を返します。ConcurrentModificationExceptionはスローされません。ただし、イテレータは一度に1つのスレッドのみが使用するように設計されています。 どういう意味ですか?2つのスレッドで同時にマップを反復しようとするとどうなりますか?反復中にマップに値を追加またはマップから削除するとどうなりますか?