std::unique_lock
Aus cppreference.com
![]() |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
definiert in Header <mutex>
|
||
template< class Mutex > class unique_lock; |
(seit C++11) | |
Die Klasse unique_lock ist ein Allzweck-Mutex Eigentum Wrapper ermöglicht latenten Verriegelung, zeitgesteuerte Verriegelung, rekursive Verriegelung, die Übertragung von Schloss Eigentum, und die Verwendung mit Zustandsgrößen .
Original:
The class unique_lock is a general-purpose mutex ownership wrapper allowing deferred locking, timed locking, recursive locking, transfer of lock ownership, and use with condition variables.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Die
unique_lock
Klasse ist nicht kopierbar, aber es ist beweglich. Die mitgelieferte Mutex
Art führt den BasicLockable
Konzept .Original:
The
unique_lock
class is non-copyable, but it is movable. The supplied Mutex
type shall implement the BasicLockable
concept.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[Bearbeiten] Mitglied Typen
Type
Original: Type The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Definition |
mutex_type
|
Mutex |
[Bearbeiten] Member-Funktionen
konstruiert eine unique_lock , wahlweise Verriegelung der mitgelieferten Mutex Original: constructs a unique_lock , optionally locking the supplied mutex The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
entriegelt die zugehörige Mutex, wenn Besitz Original: unlocks the associated mutex, if owned The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
das Mutex wieder aufgehoben, wenn Besitz und erwirbt Eigentum eines anderen Original: unlocks the mutex, if owned, and acquires ownership of another The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
Original: Locking The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
locks the associated mutex (öffentliche Elementfunktion) | |
versucht, die zugehörige Mutex sperren, kehrt zurück, wenn der Mutex nicht verfügbar ist Original: tries to lock the associated mutex, returns if the mutex is not available The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
Versuche, die damit verbundenen TimedLockable Mutex wieder sperren, wenn der Mutex wurde für die angegebene Zeitdauer nicht verfügbarOriginal: attempts to lock the associated TimedLockable mutex, returns if the mutex has been unavailable for the specified time durationThe text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
versucht, die zugehörige TimedLockable Mutex wieder sperren, wenn der Mutex ist nicht verfügbar, bis angegebenen Zeitpunkt erreicht wurde Original: tries to lock the associated TimedLockable mutex, returns if the mutex has been unavailable until specified time point has been reached The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
entriegelt die zugehörige Mutex Original: unlocks the associated mutex The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
Original: Modifiers The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
Swaps Zustand mit anderen std::unique_lock Original: swaps state with another std::unique_lock The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
distanziert die zugehörige Mutex ohne entsperren Original: disassociates the associated mutex without unlocking it The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
Original: Observers The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
liefert einen Zeiger auf den zugeordneten Mutex Original: returns a pointer to the associated mutex The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
Tests, ob die Sperre der zugehörigen Mutex besitzt Original: tests whether the lock owns its associated mutex The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) | |
Tests, ob die Sperre der zugehörigen Mutex besitzt Original: tests whether the lock owns its associated mutex The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (öffentliche Elementfunktion) |
[Bearbeiten] Non-Member-Funktionen
Spezialisierung std::swap für unique_lock Original: specialization of std::swap for unique_lock The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (Funktions-Template) |
[Bearbeiten] Beispiel
#include <mutex> #include <thread> #include <chrono> struct Box { explicit Box(int num) : num_things{num} {} int num_things; std::mutex m; }; void transfer(Box &from, Box &to, int num) { // don't actually take the locks yet std::unique_lock<std::mutex> lock1(from.m, std::defer_lock); std::unique_lock<std::mutex> lock2(to.m, std::defer_lock); // lock both unique_locks without deadlock std::lock(lock1, lock2); from.num_things -= num; to.num_things += num; lock1.unlock(); lock2.unlock(); } int main() { Box acc1(100); Box acc2(50); std::thread t1(transfer, std::ref(acc1), std::ref(acc2), 10); std::thread t2(transfer, std::ref(acc2), std::ref(acc1), 5); t1.join(); t2.join(); }