Requisitos denominados de C++:SharedLockable(desde C++14)
De cppreference.com
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).
Contenido |
[editar]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. |
[editar]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
.
[editar]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) |