Espacios de nombres
Variantes
Acciones

std::unique_lock

De cppreference.com
< cpp‎ | thread

 
 
Tema Biblioteca de ayuda
Threads
Original:
Threads
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
(C++11)
this_thread espacio de nombres
Original:
this_thread namespace
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
(C++11)
(C++11)
(C++11)
Exclusión mutua
Original:
Mutual exclusion
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
(C++11)
Gestión de bloqueos genérico
Original:
Generic lock management
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
(C++11)
unique_lock
(C++11)
(C++11)
(C++11)
(C++11)(C++11)(C++11)
Las variables de condición
Original:
Condition variables
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
(C++11)
Futuros
Original:
Futures
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
(C++11)
(C++11)
(C++11)
(C++11)
 
std::unique_lock
Las funciones miembro
Original:
Member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Bloqueo
Original:
Locking
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Modificadores
Original:
Modifiers
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Los observadores
Original:
Observers
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Terceros funciones
Original:
Non-member functions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
 
Definido en la cabecera <mutex>
template< class Mutex >
class unique_lock;
(desde C++11)
El unique_lock clase es un contenedor de uso general mutex propiedad permitiendo bloqueo diferido, cierre temporizado, cierre recursivo, la transferencia de la propiedad de bloqueo, y el uso de las variables de condición .
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.
La clase unique_lock es no copiables, pero es movible. El tipo Mutex suministrado deberá aplicar el concepto 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.

Contenido

[editar] Tipos de miembros

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

[editar] Las funciones miembro

construye una unique_lock, opcionalmente bloquear el mutex suministrado
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.

(función miembro público) [editar]
desbloquea el mutex asociado, si su propiedad
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.

(función miembro público) [editar]
desbloquea el mutex, si es de propiedad, y adquiere la propiedad de otro
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.

(función miembro público) [editar]
Bloqueo
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
(función miembro público) [editar]
intenta bloquear el mutex asociado, devoluciones si el mutex no está disponible
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.

(función miembro público) [editar]
intenta bloquear el mutex asociado TimedLockable, devoluciones si el mutex no ha estado disponible para la duración de tiempo especificado
Original:
attempts to lock the associated TimedLockable mutex, returns if the mutex has been unavailable for the specified time duration
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(función miembro público) [editar]
intenta bloquear el mutex asociado TimedLockable, devoluciones si el mutex no ha estado disponible hasta que se especifique punto de tiempo se ha alcanzado
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.

(función miembro público) [editar]
desbloquea el mutex asociado
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.

(función miembro público) [editar]
Modificadores
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 afirmar con otro 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.

(función miembro público) [editar]
disocia la exclusión mutua asociada sin desbloquearlo
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.

(función miembro público) [editar]
Los observadores
Original:
Observers
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
devuelve un puntero a la exclusión mutua asociado
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.

(función miembro público) [editar]
comprueba si el bloqueo de exclusión mutua es dueña de su asociado
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.

(función miembro público) [editar]
comprueba si el bloqueo de exclusión mutua es dueña de su asociado
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.

(función miembro público) [editar]

[editar] Terceros funciones

especialización de std::swap para 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.

(plantilla de función) [editar]

[editar] Ejemplo

#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();
}