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.