Обзор: четыре модели использования событий
Обзор: четыре модели использования событий
Комбинирование автоматически сбрасываемых и сбрасываемых вручную событий с функциями SetEvent и PulseEvent приводит к четырем различным способам использования событий. Каждая из четырех комбинаций уникальна и каждая из них оказывается полезной или даже необходимой в той или иной ситуации, так что все они будет соответствующим образом использованы в примерах и упражнениях, приведенных в этой и следующей главах.
Предостережение
Некорректное использование событий может привести к возникновению условий состязаний, взаимоблокировок и других тонких, трудно обнаруживаемых ошибок. В главе 10 описываются методики, применение которых является обязательным почти во всех случаях использования событий, за исключением самых тривиальных.
В табл. 8.1 описаны четыре возможные ситуации.
Таблица 8.1. Сводная таблица свойств событий
Автоматически сбрасываемые события Сбрасываемые вручную события SetEvent Освобождается строго один поток. Если в этот момент ни один из потоков не ожидает наступления события, то поток, который первым перейдет в состояние ожидания следующих событий, будет сразу же освобожден. После этого событие немедленно автоматически сбрасывается. Освобождаются все потоки, которые в настоящее время ожидают наступления события. Событие остается в сигнальном состоянии до тех пор, пока не будет сброшено каким-либо потоком. PulseEvent Освобождается строго один поток, но только в том случае, если имеется поток, ожидающий наступления события. Освобождаются все потоки, которые в этот момент ожидают наступления события, если таковые имеются, после чего событие сбрасывается и переходит в несигнальное состояние.
Образно говоря, автоматически сбрасываемое событие — это дверь, снабженная пружиной, которая обеспечивает автоматическое закрытие двери, в то время как вручную сбрасываемое событие можно уподобить двери, в которой пружина отсутствует и которая, будучи раз открытой, продолжает оставаться в таком состоянии. Используя эту метафору, можно сказать, что функция PulseEvent открывает дверь и закрывает ее сразу же после того, как через нее проходят одна (автоматически сбрасываемые события) или все (вручную сбрасываемые события) ожидающие потоки. Функция SetEvent открывает дверь и освобождает ее.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Четыре типа невидимости в Интернете
Четыре типа невидимости в Интернете Традиционно выделяют четыре типа невидимости содержимого Всемирной Паутины, сформулирванные Крисом Шерманом и Гэри Прайсом.1. Невидимость, обусловленная настройками пауков и их естественными особенностями (так называемый, «серый
1.3. Обзор модели зрелости процессов разработки
1.3. Обзор модели зрелости процессов разработки Хотя зачастую инженеры-разработчики и менеджеры хорошо осведомлены о своих проблемах, их взгляды на то, какие усовершенствования являются наиболее важными, могут быть различными. Без организованной стратегии
Глава 3 . Связывание модели процессов и модели данных
Глава 3. Связывание модели процессов и модели данных 3.1. Модель данных и ее соответствие модели процессов Функциональная модель BPwin является основой для построения модели данных. Действительно, не имея информации о том, как работает предприятие, бессмысленно строить
4.2. Создание модели данных на основе объектной модели с помощью ERwin Translation Wizard
4.2. Создание модели данных на основе объектной модели с помощью ERwin Translation Wizard Rational Rose позволяет строить объектную модель, но не может построить качественную физическую модель данных. Для решения этой задачи фирмой PLATINUM technology выпущена утилита ERwin Translation Wizard, позволяющая
Четыре видеорегистратора Олег Нечай
Четыре видеорегистратора Олег Нечай Опубликовано 31 августа 2011 года Proline DVR-006 Один из самых популярных бюджетных видеорегистраторов, известный под самыми разными названиями, включая Proline DVR-006, или «Сова». Главная причина популярности —
Четыре мира программной разработки
Четыре мира программной разработки Из предшествующей дискуссии следует, что когда мы говорим об ОО-разработке, следует различать четыре отдельных мира:[x]. Моделируемую систему, - внешнюю по отношению к программной системе, описываемую типами объектов и их абстрактными
Тридцать четыре года спустя
Тридцать четыре года спустя Сиэтл, 1999. Я заказал две порции кофе с молоком и белым шоколадом и протянул бармену в качестве оплаты карточку Mileage Plus First Card. Несмотря на то что напитки стоили всего по 3 доллара каждый, я предпочел заплатить комиссию за транзакцию вместо
ОГОРОД КОЗЛОВСКОГО: Четыре мега за четыре гига
ОГОРОД КОЗЛОВСКОГО: Четыре мега за четыре гига Автор: Козловский ЕвгенийЗаканчивая прошлый "Огород", "Убивца", я пообещал детектив. Выполняю обещание.Итак, набив до отказа привычными программами описанный в "Убивце" x600, я начал с ним жить. Жизнь была нормальная, к
ГОЛУБЯТНЯ: Четыре Жэ в кумаре
ГОЛУБЯТНЯ: Четыре Жэ в кумаре Автор: Сергей ГолубицкийВ "Плановом снижении градуса" старый пень проговорился: помянул в контексте настроек GPRS мобильного оператора IDEA HTC Max 4G! А ведь так хотелось, чтобы вышло сюрпризом! Ну коли не срослось, расколюсь ранее положенного
ОГОРОД КОЗЛОВСКОГО: По четыре
ОГОРОД КОЗЛОВСКОГО: По четыре Автор: Козловский ЕвгенийИтак, продолжаю (почти заканчиваю) свою историю с полным переходом на Высокую Четкость. Я уже рассказывал про то, что, во-первых, мой референсный многоканальный усилитель VSA-AX10Ai от Pioneer, купленный в более тучные
Глава 4. Четыре переменные
Глава 4. Четыре переменные В наших проектах мы пытаемся контролировать четыре переменные – затраты, время, качество и объем работ. Из всех этих переменных наиболее удобной для контроля является объем работ.В данной главе я расскажу вам о модели разработки программного
Глава 7. Четыре ценности
Глава 7. Четыре ценности Мы сможем успешно решить стоящую перед нами проблему, если сформулируем стиль, который направлен на прославление каждой из согласующегося набора ценностей, которые служат как человеческим, так и коммерческим требованиям: коммуникация, простота,