mutex
Klasse (C++-Standardbibliothek)
Stellt einen mutex-Typ dar. Objekte dieses Typs können dazu verwendet werden, den gegenseitigen Ausschluss innerhalb eines Programms zu erzwingen.
Syntax
class mutex;
Member
Öffentlicher Konstruktor/Destruktor
Name | Beschreibung |
---|---|
mutex |
Erstellt ein mutex -Objekt. |
~mutex |
Gibt alle Ressourcen frei, die vom mutex -Objekt verwendet wurden. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
lock |
Blockiert den aufrufenden Thread, bis der Thread in den Besitz von mutex gelangt. |
native_handle |
Gibt den implementierungsspezifischen Typ zurück, der das Mutexhandle darstellt. |
try_lock |
Versucht, ohne Blockierung in den Besitz von mutex zu gelangen. |
unlock |
Gibt den Besitz von mutex frei. |
Anforderungen
Header: <mutex>
Namespace:std
lock
Blockiert den aufrufenden Thread, bis der Thread in den Besitz von mutex
gelangt.
void lock();
Hinweise
Wenn der aufrufende Thread bereits im Besitz von mutex
ist, so ist das Verhalten nicht definiert.
Konstruktor
Erstellt ein mutex
Objekt, das nicht gesperrt ist.
Vor Visual Studio 2022 17.10 war die Implementierung dieses Konstruktors von Microsoft nicht constexpr
. Jetzt ist constexpr
es .
mutex() noexcept;
Destruktor
Gibt alle Ressourcen frei, die vom mutex
-Objekt verwendet werden.
~mutex();
Hinweise
Wenn das Objekt gesperrt ist, wenn der Destruktor ausgeführt wird, ist das Verhalten nicht definiert.
native_handle
Gibt den implementierungsspezifischen Typ zurück, der das Mutexhandle darstellt. Das Mutexhandle kann je nach Implementierung auf die jeweils entsprechende Weise verwendet werden.
native_handle_type native_handle();
Rückgabewert
native_handle_type
ist als ein Concurrency::critical_section *
. Es wird als void *
.
try_lock
Versucht, ohne Blockierung in den Besitz von mutex
zu gelangen.
bool try_lock();
Rückgabewert
true
, wenn die Methode erfolgreich in den Besitz von mutex
gelangt; andernfalls false
.
Hinweise
Wenn der aufrufende Thread bereits im Besitz von mutex
ist, so ist das Verhalten nicht definiert.
unlock
Gibt den Besitz von mutex
frei.
void unlock();
Hinweise
Wenn der aufrufende Thread nicht der Besitzer ist mutex
, ist das Verhalten nicht definiert.