Поделиться через


Класс CMutex

Представляет мьютекс" "— объект синхронизации, позволяющий один поток являются - монопольный доступ к ресурсу.

class CMutex : public CSyncObject

Члены

Открытые конструкторы

Имя

Описание

CMutex::CMutex

Создает объект CMutex.

Заметки

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

Чтобы использовать объект CMutex, создайте объект CMutex при необходимости. Укажите имя мьютекса необходимо дождаться on, и что приложение должно иметь его. Затем можно получить доступ мьютекс, когда конструктор завершает работу. Вызовите CSyncObject::Unlock по завершении при доступе к контролируемому ресурсу.

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

Доступ к ресурсам проконтролированные объектами CMutex таким образом, сначала создать переменную или типа CSingleLock или ввести CMultiLock в функции-члене доступа данного ресурса. Затем вызовите функцию-член объекта Lock блокировки (например, CSingleLock::Lock). На этом этапе в поток или получит доступ к ресурсу, ожидание ресурсов для освобождения и доступа, увеличения или ожидает ресурс для освобождения и выдаст ошибку времени ожидания, а не сумеющ для получения доступа к ресурсу. В любом случае ресурс был доступ потокобезопасным способом. Освобождение ресурс, использование функции-члена Unlock объекта блокировки (например, CSingleLock::Unlock) или разрешить объект блокировки к падению из области.

Дополнительные сведения об использовании объектов CMutex см. в статье Многопоточность. Использование классов синхронизации.

Иерархия наследования

CObject

CSyncObject

CMutex

Требования

Header: afxmt.h

См. также

Ссылки

Класс CSyncObject

Диаграмма иерархии