C3D Toolkit  Kernel - 110464, Vision - 2.5.0.35
Класс Mutex

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

#include <vsn_mutex.h>

Открытые члены

 Mutex (RecursionMode mode=NonRecursive)
 Конструктор по умолчанию.
 
 ~Mutex ()
 Деструктор.
 
bool IsRecursive ()
 Вернуть признак рекурсии.
 
void Lock ()
 Блокировать мьютекс - выполнение останавливается, если мьютекс недоступен.
 
void lock ()
 Блокировать мьютекс - выполнение останавливается, если мьютекс недоступен.
 
bool TryLock ()
 Пытается заблокировать мьютекс, возвращается, если мьютекс недоступен.
 
void Unlock ()
 Разблокировать мьютекс.
 
void unlock ()
 Разблокировать мьютекс.
 

Подробное описание

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

Если нерекурсивная семантика владения (recursive равно false): Вызывающий поток владеет мьютексом со времени успешного вызова Lock или Trylock и до момента вызова Unlock. Пока поток владеет мьютексом, все остальные потоки при попытке завладения им блокируются на вызове Lock или получают значение false при вызове Trylock. Вызывающий поток не должен владеть мьютексом до вызова Lock или Trylock.

Если рекурсивная семантика владения (recursive равно true): Вызывающий поток владеет recursive_mutex за определенный период времени, который начинается, когда он успешно вызывает либо Lock или Trylock. В течение этого периода поток может сделать дополнительные вызовы Lock или Trylock. Период владения заканчивается, когда поток делает соответствующее количество обращений к Unlock. Когда поток владеет mutex, все остальные потоки будут блокированы (при вызове Lock) или возвращать значение false при вызове Trylock.


Объявления и описания членов класса находятся в файле: