Может ли кто-нибудь предложить хорошую реализацию CircularBuffer? Мне нужны как "небезопасные", так и "потокобезопасные" версии. Я ожидаю следующих операций:
- возможность предоставления размера буфера при создании
- добавление элементов
- итерирующие элементы
- удаление элементов при итерации
- возможно удаление элементов
Я ожидаю, что реализация будет сильно оптимизирована с точки зрения скорости и используемой памяти, среднего и худшего времени и т.д.
Я ожидаю, что реализация "не потокобезопасная" будет чрезвычайно быстрой. Я ожидаю, что "потокобезопасная" реализация будет быстрой, возможно, используя "незакрепленный код" для синхронизации, и это нормально иметь некоторые ограничения, если это необходимо для скорости.
Если буфер слишком мал, чтобы хранить новый (добавленный) элемент, он имеет смысл переустановить существующий элемент или исключить исключение.
Должен ли я использовать disruptor.net?
Добавление ссылки на хороший пример Пример Disruptor.NET