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. |
<metanoindex/>
<tbody> </tbody>| definiert in Header <mutex>
|
||
template< class Mutex > class unique_lock; |
(seit C++11) | |
Die Klasse
unique_lock ist ein Allzweck-Mutex Eigentum Wrapper ermglicht latenten Verriegelung, zeitgesteuerte Verriegelung, rekursive Verriegelung, die bertragung von Schloss Eigentum, und die Verwendung mit Zustandsgren . 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 fhrt 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.
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
|
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 zugehrige 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 zugehrige Mutex sperren, kehrt zurck, wenn der Mutex nicht verfgbar 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 fr die angegebene Zeitdauer nicht verfgbarOriginal: 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 zugehrige TimedLockable Mutex wieder sperren, wenn der Mutex ist nicht verfgbar, 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 zugehrige 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 zugehrige 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 zugehrigen 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 zugehrigen 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) | |
Non-Member-Funktionen
Spezialisierung std::swap fr unique_lockOriginal: specialization of std::swap for unique_lockThe text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (Funktions-Template) | |
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();
}