Сравнительный обзор: мьютексы и объекты CRITICAL_SECTION

Сравнительный обзор: мьютексы и объекты CRITICAL_SECTION

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

• Мьютексы, покинутые завершающимися потоками, переходят в сигнальное состояние, в результате чего другие потоки не будут блокироваться на неопределенное время.

• Имеется возможность организовать ожидание мьютекса с использованием конечного интервала ожидания, тогда как в случае объектов CS возможен только опрос их состояния.

• Мьютексам можно присваивать имена, и их могут совместно использовать потоки, принадлежащие разным процессам.

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

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

• Обычно, хотя и не всегда, использование объектов CS обеспечивает более высокую производительность по сравнению с той, которая достигается при использовании мьютексов. Этот вопрос более подробно обсуждается в главе 9.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

5.4. Объекты

Из книги Самоучитель UML автора Леоненков Александр

5.4. Объекты Объект (object) является отдельным экземпляром класса, который создается на этапе выполнения программы. Он имеет свое собственное имя и конкретные значения атрибутов. В силу самых различных причин может возникнуть необходимость показать взаимосвязи не только


Объекты DataSet с множеством таблиц и объекты DataRelation

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Объекты DataSet с множеством таблиц и объекты DataRelation До этого момента во всех примерах данной главы объекты DataSet содержали по одному объекту DataTable. Однако вся мощь несвязного уровня ADO.NET проявляется тогда, когда DataSet содержит множество объектов DataTable. В этом случае вы можете


Объекты

Из книги Основы AS/400 автора Солтис Фрэнк

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


Объекты OS/400 и системные объекты MI

Из книги Установка и настройка Tor автора Стручков Юрий

Объекты OS/400 и системные объекты MI Несколько типов объектов имеются и в OS/400, и в MI. Типы объектов OS/400 перечислены в таблице 5.1. Для сравнения, в таблице 5.2 приведены системные объекты MI. Помните, что в каждой новой версии AS/400 добавляются новые функции и даже новые объекты.


12. Сравнительный анализ систем обеспечения анонимности

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

12. Сравнительный анализ систем обеспечения анонимности Итак, если, посетив какой-либо интернет-ресурс, вы оставили там свой реальный IP-адрес, то по нему легко узнать страну, где вы находитесь, город, название и адрес вашего провайдера, его телефон и e-mail. Если компьютер из


Объекты

Из книги Системное программирование в среде Windows автора Харт Джонсон М

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


Использование объектов CRITICAL_SECTION для защиты разделяемыхпеременных

Из книги Технологии программирования автора Камаев В А

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


Мьютексы

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир

Мьютексы Объект взаимного исключения (mutual exception), или мьютекс (mutex), обеспечивает более универсальную функциональность по сравнению с объектом CRITICAL_SECTION. Поскольку мьютексы могут иметь имена и дескрипторы, их можно использовать также для синхронизации потоков,


Покинутые мьютексы

Из книги Macromedia Flash Professional 8. Графика и анимация автора Дронов В. А.

Покинутые мьютексы Мьютекс, владевший которым поток завершился, не освободив его, называют покинутым (abandoned), и его дескриптор переходит в сигнальное состояние. На то, что сигнализирующий дескриптор (дескрипторы) представляет покинутый мьютекс (мьютексы), указывает


Мьютексы, критические участки кода и взаимоблокировки

Из книги автора

Мьютексы, критические участки кода и взаимоблокировки Несмотря на то что объекты CS и мьютексы обеспечивают решение задач, подобных той, которая иллюстрируется на рис. 8.1, при их использовании следует соблюдать осторожность, иначе можно создать ситуацию взаимоблокировки


Обзор: объекты синхронизации Windows

Из книги автора

Обзор: объекты синхронизации Windows Наиболее важные свойства объектов синхронизации Windows перечислены в табл. 8.2.Таблица 8.2. Сравнительные характеристики объектов синхронизации Windows CRITICAL_SECTION Мьютекс Семафор Событие Именованный защищаемый объект


Дополнительные рекомендации относительно использования мьютексов и объектов CRITICAL_SECTION

Из книги автора

Дополнительные рекомендации относительно использования мьютексов и объектов CRITICAL_SECTION К этому времени мы успели познакомиться со всеми объектами синхронизации Windows и исследовали их применимость на ряде примеров. Мьютексы и объекты CS рассматривались первыми, а


Достоинства и недостатки объектов CRITICAL_SECTION

Из книги автора

Достоинства и недостатки объектов CRITICAL_SECTION Прежде всего, мы попытаемся количественно оценить влияние объектов синхронизации на производительность, и сравним между собой объекты CRITICAL_SECTION и мьютексы. В программе statsMX.c (программа 9.1) для синхронизации доступа к


8.3. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ТЕХНОЛОГИЙ СТРУКТУРНОГО И ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ

Из книги автора

8.3. СРАВНИТЕЛЬНЫЙ АНАЛИЗ ТЕХНОЛОГИЙ СТРУКТУРНОГО И ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ Для проведения сравнительного анализа технологий структурного и объектно-ориентированного программирования разработана специальная методика, основанная на таких


Объекты 

Из книги автора

Объекты  Итак, мы познакомились с типами данных, переменными, константами, операторами, простыми и сложными выражениями, функциями и массивами. Но это была, так сказать, присказка, а сказка будет впереди. Настала пора узнать о самых сложных структурах данных JavaScript —


Объекты

Из книги автора

Объекты Итак, мы познакомились с типами данных, переменными, константами, операторами, действиями, простыми и сложными выражениями, функциями и массивами. Теперь настала пора узнать о самых сложных структурах данных ActionScript —