std::unique_lock
Da cppreference.com.
![]() |
Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate.
La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
Elemento definito nell'header <mutex>
|
||
template< class Mutex > class unique_lock; |
(dal C++11) | |
Il unique_lock classe è un general-purpose involucro proprietà mutex permettendo chiusura differita, chiusura temporizzata, chiusura ricorsiva, il trasferimento di proprietà di blocco, e l'uso di variabili di condizione.
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.
La classe
unique_lock
è non copiabile, ma è mobile. Il tipo di Mutex
fornito l'esecuzione del concetto BasicLockable
.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.
[modifica] Membri tipi
Tipo
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 |
[modifica] Membri funzioni
costruisce un unique_lock , eventualmente bloccare il mutex in dotazione 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. (metodo pubblico) | |
sblocca il mutex associato, se di proprietà 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. (metodo pubblico) | |
sblocca il mutex, se di proprietà, e acquista la proprietà di un altro 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. (metodo pubblico) | |
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 (metodo pubblico) | |
prova a bloccare il mutex associato, restituisce se il mutex non è disponibile 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. (metodo pubblico) | |
i tentativi di bloccare il mutex associato TimedLockable , restituisce se il mutex non è stato disponibile per la durata di tempo specificatoOriginal: 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. (metodo pubblico) | |
cerca di bloccare il mutex associato TimedLockable , restituisce se il mutex è stato disponibile fino al punto di tempo specificato è stato raggiunto 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. (metodo pubblico) | |
sblocca il mutex associato 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. (metodo pubblico) | |
Original: Modifiers The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
swap di indicare con un altro 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. (metodo pubblico) | |
dissocia il mutex associato senza sbloccarlo 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. (metodo pubblico) | |
Original: Observers The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. | |
restituisce un puntatore al mutex associato 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. (metodo pubblico) | |
verifica se il blocco possiede il suo mutex associato 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. (metodo pubblico) | |
verifica se il blocco possiede il suo mutex associato 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. (metodo pubblico) |
[modifica] Non membri funzioni
specializzazione di std::swap per 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. (funzione di modello) |
[modifica] Esempio
#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(); }