![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
imm |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 27.7.2005 Репутация: нет Всего: 1 |
Вопрос такой.
Являются ли операции вставки/удаления из объектов классов System.Collection.Generic атомарными? Или при реализации многопоточности нужно каждую модификацию объектов обворачивать в lock? ps. Немного offtop, но нехотел создавать похожую тему рядом. Нужно ли обворачивать в lock использование переменных простых типов, например int или bool? За ранее благодарен. Это сообщение отредактировал(а) imm - 8.6.2009, 05:43 |
|||
|
||||
Raistlin |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 19.5.2009 Репутация: нет Всего: нет |
В общем случае, зависит от использования:
Это сообщение отредактировал(а) Raistlin - 8.6.2009, 08:57 |
||||
|
|||||
imm |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 27.7.2005 Репутация: нет Всего: 1 |
Ага, понятно.
А что насчет объектов классов System.Collections.Generic, являются ли их операции атомарными? |
|||
|
||||
Bladerender |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 207 Регистрация: 19.7.2007 Репутация: нет Всего: нет |
Если Вы о том, можно ли делать паралельно вставку (удаление) в коллекцию елементов из разных потоков, включительно с ситуацией, что это может быть сделано одновременно, то можно. Проверял. Но я делал доступ по индексам, а не одновременно делал Адд и Ремув[счетчик-1]
|
|||
|
||||
imm |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 27.7.2005 Репутация: нет Всего: 1 |
Я согласен с тобой Bladerender, я тоже пробовал запускать много потоков и делать операции вставки/удаления и все было ок, но никто не гарантирует, что в дальнейшем у всех и всегда эта прога будет работать именно так. В общем хотелось бы узнать именно является ли операции стандартных коллекций атомарными или нет?
|
|||
|
||||
PashaPash |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 13 Всего: 49 |
imm, в общем случае - нет. для каждого класса в MSDN есть секция Thread Safety, где подробно описаны конкретные особенности.
|
|||
|
||||
Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 18 Всего: 67 |
imm, а в msdn на предмет thread safety инфы по классам чтоли нет?
-------------------- СУВ, Partizan. |
|||
|
||||
imm |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 27.7.2005 Репутация: нет Всего: 1 |
В msdn, а в google тем более точно есть все. И если бы люди обращались вначале туды, то на этом форуме небыло бы постов. В форум люди идут за ответом на конкретный вопрос и если его получают потом иду снова и снова, таким образом живут и развиваются и становлятся интересными ресурсы. Зачем говорить, что вы знаете что это есть в msdn, если знаете помогите, вам будут очень благодарны. Зачастую у людей нет времени что бы разбираться в поставленном вопросе во всей его полноте, либо присутствуют языковые преграды.
Но все равно спасибо PashaPash за ответ, он меня устроил. Спасибо за внимание. |
|||
|
||||
PashaPash |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 13 Всего: 49 |
imm,
MSDN есть на русском - языковые преграды - отмазка. Есть очень много вопросов, ответов на которые нет в MSDN, или есть, но не в явном виде. Вот их и надо постить на форум ![]() |
|||
|
||||
Pankon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 739 Регистрация: 2.6.2005 Репутация: 3 Всего: 5 |
||||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |