Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Мониторы в среде .NET. Ожидание выполнения условий с помощью методов Wait и Pulse.

Читайте также:
  1. A. Диффузия с помощью переносчика, диффузия через поры.
  2. C.) К специфическим задачам, которые используются в ходе реализации частично-поисковых методов на уроке технологии, относятся
  3. D)практических методов.
  4. II . ПОРЯДОК ЗАПОЛНЕНИЯ ДОКУМЕНТОВ, СОДЕРЖАЩИХ НОРМЫ, ТРЕБОВАНИЯ И УСЛОВИЯ ИХ ВЫПОЛНЕНИЯ ПО ВИДАМ СПОРТА
  5. II. Классификация методов исследования ППО
  6. II. Организация выполнения контрольной работы
  7. II. Организация выполнения курсовой работы
  8. III. Правила выполнения и оформления контрольной работы
  9. IV. Организация выполнениявыпускной квалификационной работы
  10. V2:Профилактика девиантного поведения в молодежной среде. Социально-педагогическая работа с неформальными молодежными группами и объединениями

Как и lock, мониторы не допускают одновременное выполнение несколькими потоками одних и тех же блоков кода. Метод Enter позволяет только одному методу переходить к последующим операторам, все прочие методы заблокированы, пока выполняемый метод не вызовет Exit. Это аналогично использованию ключевого слова lock. Ключевое слово lock реализовано с классом Monitor.

Рекомендуется использовать ключевое слово lock, а не класс Monitor, поскольку lock компактнее и потому что lock обеспечивает высвобождение монитора, даже если защищенный код создал исключение. Для этого применяется ключевое слово finally, которые выполняет свой блок кода вне зависимости от наличия исключений.

Класс Monitor контролирует доступ к объектам, предоставляя блокировку объекта одному потоку. Блокировки объектов предоставляют возможность ограничения доступа к части кода, обычно называемой критической секцией. Пока поток владеет блокировкой для объекта, никакой другой поток не может ею завладеть. Можно также использовать Monitor для того, чтобы убедиться, что ни один поток не имеет доступа к секции кода приложения, выполняющейся владельцем блокировки, пока другой поток не будет выполнять код, используя другой объект с блокировкой.

Monitor имеет следующие свойства:

Связывается с объектом по требованию.

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

Невозможно создать экземпляр класса Monitor.

Следующая информация хранится для каждого синхронизированного объекта:

Ссылка на поток, который в данный момент владеет блокировкой.

Ссылка на очередь готовности, которая содержит потоки, готовые получить блокировку.

Ссылка на очередь ожидания, содержащую потоки, ожидающие уведомления об изменении состояния объекта с блокировкой.

Wait

Освобождает блокировку объекта для того, чтобы разрешить другим потокам осуществлять блокировку и получить доступ к объекту. Вызывающий поток ожидает, пока другой поток не произведет доступ к объекту. Для уведомления ожидающих потоков об изменении состояния объекта используются импульсные сигналы.

Pulse(сигнал),PulseAll

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




Дата добавления: 2015-01-30; просмотров: 29 | Поможем написать вашу работу | Нарушение авторских прав

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | <== 21 ==> | 22 | 23 | 24 | 25 |


lektsii.net - Лекции.Нет - 2014-2024 год. (0.009 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав