Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Многопоточность и блокировки. Примеры.  (Прочитано 6359 раз)
0 Пользователей и 1 Гость смотрят эту тему.
little
Помогающий

de
Offline Offline
Пол: Мужской

« : 11-03-2008 14:28 » 

Подскажите где почитать про блокировки в многопоточных приложениях. Интересует не столько теория, сколько примеры реализации, подводные камни, способы и примеры борьбы с "различными неприятностями".
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 11-03-2008 17:13 » 

little, не столь важно, какой механизм - суть одна и таже: явно или неявного используюется некий объект синхронизации, при попытке пометить заблокированным который, программный поток либо останавливается (если объект уже кем то заблокирован), либо продолжает выполнение (значит блокировка успешная).

Классический подводный камень - последовательное блокирование нескольких объектов: при этом, если поток 1 будет блокировать их в другом порядке, чем поток 2, то возможна ситуация их взаимной блокировки - метрвая петля (dead lock).

Другой классичекий подводный камень: поток блокирует объект синхронизации и сам блокируется на какой-либо другой операции (например ввод-ввывод), чем вызывает остановку других потоков на объекте (а эти потоки, по логике приложения, не должны были останавливаться на большой срок). Это еще не мертвая петля, но тоже очень непрятно.
« Последнее редактирование: 11-03-2008 17:18 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
little
Помогающий

de
Offline Offline
Пол: Мужской

« Ответ #2 : 11-03-2008 21:51 » 

это я в курсе.

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

что-нибудь про организацию пулов потоков.

И все это применительно к дот-нету.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines