Класс CMutex
Представляет мьютекс" "— объект синхронизации, позволяющий один поток являются - монопольный доступ к ресурсу.
class CMutex : public CSyncObject
Члены
Открытые конструкторы
Имя |
Описание |
---|---|
Создает объект CMutex. |
Заметки
Мьютексы полезно, если одновременно только один поток может разрешить для изменения данных или какой-либо другой контролируемому ресурсу.Например, добавление узлов к связанному списку процесс, который должен иметь разрешения только одним потоком.С помощью объекта CMutex для управления связанного списка, одновременно только один поток может получить доступ к списку.
Чтобы использовать объект CMutex, создайте объект CMutex при необходимости.Укажите имя мьютекса необходимо дождаться on, и что приложение должно иметь его.Затем можно получить доступ мьютекс, когда конструктор завершает работу.Вызовите CSyncObject::Unlock по завершении при доступе к контролируемому ресурсу.
Альтернативный метод, чтобы использовать объекты CMutex добавление переменной типа CMutex как элемент данных, к классу необходимо отслеживать.При создании управляемого объекта, вызовите конструктор определение элемента данных CMutex если исходная принадлежит мьютекс, то именем мьютекса (если он будет использоваться через границы процессов) и пожеланных атрибутов безопасности.
Доступ к ресурсам проконтролированные объектами CMutex таким образом, сначала создать переменную или типа CSingleLock или ввести CMultiLock в функции-члене доступа данного ресурса.Затем вызовите функцию-член объекта Lock блокировки (например, CSingleLock::Lock).На этом этапе в поток или получит доступ к ресурсу, ожидание ресурсов для освобождения и доступа, увеличения или ожидает ресурс для освобождения и выдаст ошибку времени ожидания, а не сумеющ для получения доступа к ресурсу.В любом случае ресурс был доступ потокобезопасным способом.Освобождение ресурс, использование функции-члена Unlock объекта блокировки (например, CSingleLock::Unlock) или разрешить объект блокировки к падению из области.
Дополнительные сведения об использовании объектов CMutex см. в статье Многопоточность. Использование классов синхронизации.
Иерархия наследования
CMutex
Требования
Header: afxmt.h