2009-03-15 3 views
4

Ну, я пишу в .net, и у меня есть список для ведьмы. Я только добавлю элемент, который никогда не удаляется, и его связанный список я могу изменить, если его не лучший выбор, но любой путь к точке, было бы безопасно не использовать любая блокировка в этом случае, когда я знаю, что этот список никогда не будет изменен каким-либо другим способом, кроме его добавления? (блокировка будет использоваться при попытке добавить в список)?Связанный список Тема безопасна?

ответ

3

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

http://msdn.microsoft.com/en-us/library/he2s3bh7.aspx

+0

ну вот что я пытаюсь сказать извините, если бы я написал это немного пропустить, многие читатели и только один писатель ... это было бы безопасно или, по крайней мере, только один писатель в то время. – Peter

+0

@Petoj - чтение не будет безопасным одновременно с писателем - даже если запись ограничена одним потоком. –

6

Нет; для поддержки многих читателей и одного писателя (комментарии к ответу Джареда), вы можете посмотреть на ReaderWriterLockSlim. Писатель требует эксклюзивного доступа; читатели могут сотрудничать. Это то, что делает ReaderWriterLockSlim. Существует также ReaderWriterLock pre 3.5.

Вам необходимо будет обрабатывать ввод/выезд и т. Д. Вручную - в идеале через try/finally.

Смежные вопросы