誰かが良い CircularBuffer 実装を提案できますか? 「非スレッドセーフ」バージョンと「スレッドセーフ」バージョンの両方が必要です。私は次の操作を期待しています:
- 作成時にバッファのサイズを提供する機能
- 要素を追加する
- 反復要素
- 繰り返しながら要素を削除する
- おそらく要素を削除します
速度と使用メモリ、平均時間と最悪時間などの点で、実装が高度に最適化されることを期待しています。
「スレッドセーフではない」実装は非常に高速になると思います。おそらく同期に「ロックフリーコード」を使用して、「スレッドセーフ」な実装が高速になることを期待しています。これが速度のために必要な場合は、いくつかの制限があっても問題ありません。
バッファーが小さすぎて新しい (追加された) 要素を格納できない場合は、既存の要素を黙ってオーバーライドするか、例外を発生させても問題ありません。
私はdisruptor.netを使うべきですか?
良い例へのリンクを追加するDisruptor.NET の例