Пояснение к чтению и записи в словаре C #

В контексте этого оператора,

Словарь может поддерживать несколько читателей одновременно, пока так как коллекция не изменяется. Тем не менее, перечисление через Коллекция по сути не является потокобезопасная процедура. В редких случай, когда перечисление утверждает с доступом на запись, коллекция должен быть заблокирован в течение всего перечисление. Разрешить сбор доступ к нескольким потокам для чтение и письмо, вы должны реализовать собственную синхронизацию.

Что означают чтение и запись? Насколько я понимаю, чтение - это операция, которая ищет ключ и предоставляет ссылку на его значение, а запись - это операция, которая добавляет или удаляет пару значений ключа из словаря. Однако я не могу найти ничего убедительного по этому поводу.

Таким образом, большой вопрос заключается в том, при реализации поточно-безопасного словаря, будет ли операция, обновляющая значение существующего ключа в словаре, считаться средством чтения или записи? Я планирую, что несколько потоков будут обращаться к уникальным ключам в словаре и изменять их значения, но потоки не будут добавлять / удалять новые ключи.

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

Использование ConcurrentDictionary из .Net 4.0 недопустимо.

11
задан Joshua 14 January 2011 в 20:32
поделиться