Минимально блокируемый потокобезопасный хеш-таблица? - PullRequest
6 голосов
/ 21 января 2010

Существуют ли доступные реализации Hashtable, обеспечивающие безопасность потоков с минимальной блокировкой в ​​.NET? Или на другом языке, который можно перенести на .NET?

Мы ищем что-то среднее между использованием класса BCL Dictionary <,> с lock () и распределенным кеширующим приложением, таким как memcached или Velocity.

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

Ответы [ 2 ]

4 голосов
/ 21 января 2010

Начиная с .Net 4.0 существует ConcurrentDictionary . Это структура стиля хеш-таблицы, предназначенная для высокопроизводительного использования между несколькими потоками.

Подробную информацию о его использовании и реализации можно найти здесь:

1 голос
/ 21 января 2010

В Каков наилучший способ реализации поточно-безопасного словаря? Брайан Рудольф делится ссылкой на поточно-безопасный словарь, который использует ReaderWriterLockSlim: http://devplanet.com/blogs/brianr/archive/2008/09/26/thread-safe-dictionary-in-net.aspx.

Вы также можете посмотреть на синхронизированную хэш-таблицу: http://msdn.microsoft.com/en-us/library/system.collections.hashtable.aspx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...