Freigeben über


recursive_mutex-Klasse

Stellt einen mutex-Typ dar. Das Verhalten von aufrufenden Sperrmethoden für Objekte, die bereits gesperrt sind, ist im Gegensatz zu mutex klar definiert.

Syntax

class recursive_mutex;

Member

Öffentliche Konstruktoren

Name Beschreibung
recursive_mutex Erstellt ein recursive_mutex-Objekt.
~recursive_mutex-Destruktor Gibt alle Ressourcen frei, die vom recursive_mutex-Objekt verwendet werden.

Öffentliche Methoden

Name Beschreibung
lock Blockiert den aufrufenden Thread, bis der Thread in den Besitz von mutex gelangt.
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, wird die Methode sofort zurückgegeben, und die vorherige Sperre bleibt in Kraft.

recursive_mutex

Erstellt ein recursive_mutex-Objekt, das nicht gesperrt ist.

recursive_mutex();

~recursive_mutex

Gibt alle Ressourcen frei, die vom -Objekt verwendet werden.

~recursive_mutex();

Hinweise

Wenn das Objekt gesperrt ist, wenn der Destruktor ausgeführt wird, ist das Verhalten nicht definiert.

try_lock

Versucht, ohne Blockierung in den Besitz von mutex zu gelangen.

bool try_lock() noexcept;

Rückgabewert

true wenn die Methode erfolgreich den Besitz des mutex oder wenn der aufrufende Thread bereits besitzer ist mutex**; otherwise, **false.

Hinweise

Wenn der aufrufende Thread bereits im Besitz von mutex ist, gibt die Funktion sofort true zurück, und die vorherige Sperre bleibt in Kraft.

Entsperren

Gibt den Besitz von mutex frei.

void unlock();

Hinweise

Diese Methode gibt den Besitz der mutex erst zurück, wenn sie so oft aufgerufen wurde, wie lock und try_lock erfolgreich im recursive_mutex-Objekt aufgerufen wurden.

Wenn der aufrufende Thread nicht im Besitz von mutex ist, so ist das Verhalten nicht definiert.

Siehe auch

Headerdateienreferenz
<mutex>