next up previous contents
Next: Инициализация и удаление объекта Up: Синхронизация потоков Previous: Синхронизация потоков   Contents

Блоки взаимного исключения (мьютексы - mutex)

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

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

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

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



2004-06-22