Requisitos denominados de C++: SharedLockable (desde C++14)
De cppreference.com
(Redirigido desde «cpp/named req/BloqueableCompartido»)
Los requisitos BloqueableCompartido describen las características mínimas de los tipos que proporcionan semántica de bloqueo compartido para agentes de ejecución (por ejemplo, hilos).
Requisitos
Para que el tipo L sea BloqueableCompartido, se deben satisfacer las siguientes condiciones para un objeto m de tipo L:
| Expresión | Precondiciones | Efectos | Valor devuelto |
|---|---|---|---|
m.lock_shared()
|
Se bloquea hasta que se pueda obtener un cerrojo para el agente de ejecución actual (hilo, proceso, tarea). Si se lanza una excepción, no se obtiene ningún cerrojo. | ||
m.try_lock_shared()
|
Intenta obtener un cerrojo para el agente de ejecución actual (hilo, proceso, tarea) sin bloquear. Si se lanza una excepción, no se obtiene ningún cerrojo. | true se si obtuvo en cerrojo, en caso contrario false
| |
m.unlock_shared()
|
El agente de ejecución actual tiene un cerrojo compartido en m.
|
Libera el cerrojo compartido mantenido por el agente de ejecución.
No lanza excepciones. |
Cerrojos compartidos
Se dice que un cerrojo en un objeto es un cerrojo compartido si se aquiere 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 los requisitos de BloqueableCompartido:
(C++17) |
Proporciona un servicio de exclusión mutua compartida. (clase) |
(C++14) |
Proporciona un servicio de exclusión mutua compartida e implementa bloqueo con un tiempo de espera. (clase) |