Вопрос

Кто-нибудь знает, есть ли какие-либо библиотеки контейнеров без блокировки для .NET?

Предпочтительно что-то, что доказало свою эффективность и работает быстрее, чем синхронизированные оболочки, которые есть в .NET.

Я нашел несколько статей в .NET, но ни в одной из них не указаны какие-либо тесты скорости, и они не внушают особой уверенности в своей надежности.

Спасибо

Это было полезно?

Решение

Поздно, но лучше, чем никогда. Я решил добавить в этот список статьи Джулиана Бакнолла.

Но показателей производительности у него нет.В моем тестировании его структур список хорошо масштабировался по сравнению с блокировкой (очень низкое использование ядра по сравнению с ReaderWriterLock).

В его блоге есть серия статей о структурах без блокировок в C#.

БЕЗБЛОКИРОВОЧНЫЕ СТРУКТУРЫ ДАННЫХ:СТЕК

Другие советы

Вы имеете в виду классы контейнеров, существующие в платформе PFX (Parallels для .NET), ConcurrentQueue и ConcurrentStack?

Блог PFX

Ничего не зная об этом, я наткнулся на одну библиотеку. здесь.

Хотя, вероятно, это не совсем то, что вы ищете, по крайней мере, на StackOverflow есть реализация и обсуждение заблокировать структуру свободной очереди на C# здесь.Прохождение процесса проверки кода StackOverflow может дать некоторую уверенность в его безопасности или предоставить информацию о том, как самостоятельно создавать контейнеры без блокировки.

У структур данных без блокировки будут проблемы, пока они не изменят CLR с беспорядком, вызванным моделями памяти, см. спецификацию CLI.

Программирование без блокировок достаточно сложно, поэтому вам не следует беспокоиться об этом на уровне коллекции (контейнера), кстати.Верно для любого языка..

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top