C++ named requirements: SharedLockable (since C++14)
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Los SharedLockable requisitos describen las características mínimas de los tipos que proporcionan semántica de bloqueo compartido para agentes de ejecución (es decir, hilos).
Contenidos |
Requisitos
Para que el tipo
L
sea
SharedLockable
, deben satisfacerse las siguientes condiciones para un objeto
m
de tipo
L
:
| Expresión | Precondiciones | Efectos | Valor de retorno |
|---|---|---|---|
| m. lock_shared ( ) | Bloquea hasta que se pueda obtener un bloqueo para el agente de ejecución actual (hilo, proceso, tarea). Si se lanza una excepción, no se obtiene ningún bloqueo. | ||
| m. try_lock_shared ( ) | Intenta obtener un bloqueo para el agente de ejecución actual (hilo, proceso, tarea) sin bloquear. Si se lanza una excepción, no se obtiene ningún bloqueo. | true si se obtuvo el bloqueo, false en caso contrario | |
| m. unlock_shared ( ) |
El agente de ejecución actual mantiene un bloqueo compartido en
m
.
|
Libera el bloqueo compartido mantenido por el agente de ejecución.
No lanza excepciones. |
Bloqueos compartidos
Se dice que un bloqueo sobre un objeto es un
bloqueo compartido
si se adquiere mediante una llamada a la función miembro
lock_shared
,
try_lock_shared
,
try_lock_shared_for
, o
try_lock_shared_until
.
Biblioteca estándar
Los siguientes tipos de la biblioteca estándar satisfacen SharedLockable requisitos:
|
(C++17)
|
proporciona funcionalidad de exclusión mutua compartida
(clase) |
|
(C++14)
|
proporciona funcionalidad de exclusión mutua compartida e implementa bloqueo con tiempo de espera
(clase) |