Книга: Системное программирование в среде Windows
Сравнительный обзор: мьютексы и объекты CRITICAL_SECTION
Сравнительный обзор: мьютексы и объекты CRITICAL_SECTION
Как уже неоднократно упоминалось, мьютексы и объекты CRITICAL_SECTION весьма напоминают друг друга и предназначены для решения одного и того же круга задач. В частности, объекты обоих типов могут принадлежать только одного потока, и если объектом, которым уже владеет какой-либо поток, пытаются завладеть другие потоки, то они будут блокированы до тех пор, пока объект не освободится. Мьютексы могут обеспечивать большую гибкость, однако достигается это лишь за счет ухудшения производительности. В заключение перечислим наиболее важные отличия, существующие между указанными двумя типами объектов синхронизации.
• Мьютексы, покинутые завершающимися потоками, переходят в сигнальное состояние, в результате чего другие потоки не будут блокироваться на неопределенное время.
• Имеется возможность организовать ожидание мьютекса с использованием конечного интервала ожидания, тогда как в случае объектов CS возможен только опрос их состояния.
• Мьютексам можно присваивать имена, и их могут совместно использовать потоки, принадлежащие разным процессам.
• К мьютексам применима функция WaitForMultipleObjects, что не только удобно с точки зрения программирования, но и позволяет избежать взаимоблокировки потоков при надлежащей организации программы.
• Поток, создающий мьютекс, может сразу же указать, что он становится его владельцем. В случае объектов CS за право владения объектом могут состязаться несколько потоков.
• Обычно, хотя и не всегда, использование объектов CS обеспечивает более высокую производительность по сравнению с той, которая достигается при использовании мьютексов. Этот вопрос более подробно обсуждается в главе 9.
- Покинутые мьютексы
- Глава 1. Обзор Ruby
- ЧАСТЬ IV. База данных и ее объекты.
- Обзор основных причин повреждения базы данных
- Физические объекты
- Первый просмотр: краткий обзор
- 4.1. Суть обзора задач в тайм-менеджменте. Основные понятия и определения
- 4.2. Инструменты создания обзора
- Объекты без прототипов
- Глава 2 Выбираем рассылочный сервис (требования, обзор существующих решений и личные рекомендации)
- Объекты базы данных
- Форматирующие объекты XSL-FO