ГЛАВА 10 Усовершенствованные методы синхронизации потоков

ГЛАВА 10

Усовершенствованные методы синхронизации потоков

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

Первое, что нам предстоит сделать — это объединить два или более объекта синхронизации вместе с данными для создания сложного объекта синхронизации. Наиболее полезной комбинацией такого рода является модель переменных условий (condition variable model), включающая мьютекс и одно или несколько событий. Указанная модель играет весьма существенную роль в самых различных практических ситуациях, поскольку многие серьезные программные дефекты, обусловленные влиянием состязательности, проявляются именно тогда, когда объекты синхронизации Windows, особенно события, используются программистами неправильно. События имеют сложную природу и ведут себя по-разному в зависимости от того, какой именно из описанных в табл. 8.1 вариантов используется, и поэтому следует придерживаться определенных правил, устанавливаемых хорошо изученными моделями.

В последующих разделах показано, как систематизировать управление запуском и отменой выполнения каждого из совместно работающих потоков при помощи асинхронного вызова процедур (Asynchronous Procedure Calls, APC).

Другие проблемы производительности обсуждаются по мере необходимости.

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

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

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

Глава 3. Методы лечения зависимости

Из книги Как справиться с компьютерной зависимостью автора Краснова С В

Глава 3. Методы лечения зависимости Семейная терапия Семейная психотерапия особенно эффективна в лечении компьютерной и интернет-зависимости в том случае, если их причиной стали проблемы в семье (в семейных отношениях). Для начала данного вида терапии необходимым


Проблема конкуренции и роль синхронизации потоков

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

Проблема конкуренции и роль синхронизации потоков Одним из множества "преимуществ" (читайте источников проблем) многопоточного программирования является то, что вы имеете очень узкие возможности контроля в отношении использования потоков операционной системой и


Результаты синхронизации потоков

Из книги UNIX: взаимодействие процессов автора Стивенс Уильям Ричард

Результаты синхронизации потоков В табл. А.4 приведены значения времени, нужного одному или нескольким потокам для увеличения счетчика в разделяемой памяти с использованием различных средств синхронизации в Solaris 2.6, а на рис. А.3 показан график этих значений. Каждый поток


ГЛАВА 3 Усовершенствованные средства для работы с файлами и каталогами и знакомство с реестром

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

ГЛАВА 3 Усовершенствованные средства для работы с файлами и каталогами и знакомство с реестром Файловые системы обеспечивают не только простую последовательную обработку файлов; кроме этого, они должны предоставлять возможности прямого доступа к файлам и блокирования


ГЛАВА 8 Синхронизация потоков

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

ГЛАВА 8 Синхронизация потоков Потоки могут упрощать проектирование и реализацию программ и повышать их производительность, но их использование требует принятия мер по защите разделяемых ресурсов от попыток их изменения одновременно несколькими потоками, а также


Необходимость в синхронизации потоков

Из книги Программирование на языке Пролог для искусственного интеллекта автора Братко Иван

Необходимость в синхронизации потоков В главе 7 были продемонстрированы методы создания рабочих потоков и управления ими в условиях, когда каждый рабочий поток обращался к собственным ресурсам. В приведенных в главе 7 примерах каждый поток обрабатывает отдельный файл


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

Из книги Защита от хакеров корпоративных сетей автора Автор неизвестен

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


ГЛАВА 9 Влияние синхронизации на производительность и рекомендации по ее повышению

Из книги Разработка ядра Linux автора Лав Роберт

ГЛАВА 9 Влияние синхронизации на производительность и рекомендации по ее повышению В предыдущей главе были введены операции синхронизации, использование которых иллюстрировалось с привлечением нескольких относительно простых примеров. В следующей главе предлагаются


Стеки потоков и допустимые количества потоков

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

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


Глава 5. Численные методы

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

Глава 5. Численные методы Дважды [члены Парламента] задавали мне вопрос: «А скажите, мистер Бэббидж, если вы заложите в эту машину неверные числа, то получите правильный результат?» Не могу даже представить себе, насколько извращенно должен мыслить человек, задающий такие


Глава 8 Стиль и методы программирования

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

Глава 8 Стиль и методы программирования В этой главе мы рассмотрим некоторые общие принципы хорошего программирования и обсудим, в частности, следующие вопросы: "Как представлять себе прологовские программы? Из каких элементов складывается хороший стиль


Глава 10 Усовершенствованные методы представления множеств деревьями

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

Глава 10 Усовершенствованные методы представления множеств деревьями В данной главе мы рассмотрим усовершенствованные методы представления множеств при помощи деревьев. Основная идея состоит в том, чтобы поддерживать сбалансированности или приближенную


Глава 1 Хакерские методы

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

Глава 1 Хакерские методы В этой главе обсуждаются следующие темы: • Что понимают под «хакерскими методами» • Обзор содержимого книги • Правовое обеспечение хакинга · Конспект · Часто задаваемые вопросы


Усовершенствованные методы прослушивания сетевого трафика

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

Усовершенствованные методы прослушивания сетевого трафика По мере развития технологии хакеры вынуждены создавать новые методы прослушивания сетевого трафика. Следующий раздел посвящен нескольким методам, используемым нарушителями в целях перехитрить


Глава 9 Средства синхронизации в ядре

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

Глава 9 Средства синхронизации в ядре В предыдущей главе обсуждались источники и решения проблем, связанных с конкуренцией за ресурсы. К счастью, в ядре Linux реализовано большое семейство средств синхронизации. В этой главе обсуждаются эти средства, интерфейсы к ним, а