C++ named requirements: BasicLockable (since C++11)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Los BasicLockable requisitos describen las características mínimas de los tipos que proporcionan semántica de bloqueo exclusivo para agentes de ejecución (es decir, hilos).
Contenidos |
Requisitos
Para que el tipo
L
sea
BasicLockable
, deben satisfacerse las siguientes condiciones para un objeto
m
de tipo
L
:
| Expresión | Precondiciones | Efectos |
|---|---|---|
| m. lock ( ) | Bloquea hasta que se pueda adquirir un bloqueo para el agente de ejecución actual (hilo, proceso, tarea). Si se lanza una excepción, no se adquiere ningún bloqueo. | |
| m. unlock ( ) |
El agente de ejecución actual mantiene un bloqueo no compartido en
m
.
|
Libera el bloqueo no compartido mantenido por el agente de ejecución.
No lanza excepciones. |
Bloqueos no compartidos
Se dice que un bloqueo sobre un objeto es un
bloqueo no compartido
si se adquiere mediante una llamada a las funciones miembro
lock
,
try_lock
,
try_lock_for
, o
try_lock_until
.
Biblioteca estándar
Los siguientes tipos de la biblioteca estándar satisfacen BasicLockable requisitos:
|
(C++11)
|
proporciona funcionalidad básica de exclusión mutua
(class) |
|
(C++11)
|
proporciona funcionalidad de exclusión mutua que puede ser bloqueada recursivamente por el mismo hilo
(class) |
|
(C++11)
|
proporciona funcionalidad de exclusión mutua que puede ser bloqueada recursivamente
por el mismo hilo e implementa bloqueo con tiempo de espera (class) |
|
(C++17)
|
proporciona funcionalidad de exclusión mutua compartida
(class) |
|
(C++14)
|
proporciona funcionalidad de exclusión mutua compartida e implementa bloqueo con tiempo de espera
(class) |
|
(C++11)
|
proporciona funcionalidad de exclusión mutua que implementa bloqueo con tiempo de espera
(class) |