イベント通知をサポートする同時実行マップを探しています。たとえば、そのようなキーで配置または削除時に呼び出される特定のキーのコールバックを登録できます。そして、全体がアトミックであるだけでなく、ConcurrentHashMap と同様に、かなりの程度の同時実行性も示しています。
私の最初の試みは、ConcurrentHashMap からセグメント ベースのソリューションを盗み出し、いくつかのイベント レジストリをセグメント クラスに追加することでした。しかし、これは予想以上に難しいことが判明しました。セグメント オフセットの計算はそれほど簡単ではないようです。ConcurrentHashMap からソリューションを盗むだけでは、それがどのように機能するかを理解していなければ、それほど簡単ではありません (詳細を見逃すと、バグが発生してしまいます)。ConcurrentHashMap のセグメント ソリューションがどのように機能するかを説明している論文を知っている人がいるでしょうか? 私がやり遂げることができたよりも。
リスナーの put または remove と呼び出しがすべて 1 つの同期ブロックで発生するように、マップの put または remove メソッドに大きな同期ブロックを配置するのは簡単です。しかし、これは最終的に同時実行性を低下させ、単一のセグメントを持つ ConcurrentHashMap のようなソリューションになります。
私が望むことを行うマップまたはイベントレジストリの実装を知っている人、または CONcurrentHashMap のこのセグメンテーションアルゴリズムがどのように機能するかを説明する論文へのリンクを知っている人を期待しています。
ありがとう、オリバー