Freigeben über


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 constexpres .

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.

Siehe auch

Headerdateienreferenz
<mutex>