emailId
にtestUserIds
のリストを格納するインメモリHashMap
を維持しています。ライタースレッドが1つだけの場合、java HashMap getsを同期させる必要がありますか
HashMap<Integer, String> testUsers = new HashMap<>()
そしてtestUsers
のリストへの追加/削除を読み込み、この地図上の操作を実行するだけで1バックグラウンドスレッドがあります。このマップに書き込むスレッドは1つだけなので、必ずしも同期マップにする必要はありません。
しかし、このマップから読み取るスレッドは複数あります。ライターが1人で複数の読者がある場合はConcurrentHashMap
が必要ですか?
1つのライタースレッドは、複数のリーダースレッドが読み込んでいるときに同時に書き込みを試みますか?ライターがなぜ反復しているのかを書くことができますか? – bradimus
Writer ThreadはReader Threadsと同時に書き込みを行っています。読者はイテレータを使用しません。読者はmap.get(key)のみを使用します。 – robinkc