Requisitos denominados de C++:BasicLockable(desde C++11)
De cppreference.com
Los requisitos de BloqueableBásico describen las características mínimas de tipos que proporcionan semántica de bloqueo exclusivo para agentes de ejecución (es decir, hilos).
Contenido |
[editar]Requisitos
Para que un tipo L
sea BloqueableBásico, se deben satisfacer las siguientes condiciones para un objeto m
de tipo L
:
Expresión | Requiere | Efectos |
---|---|---|
m.lock() | 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.unlock() | El agente de ejecución actual tiene un cerrojo no compartido en m . | Libera el cerrojo no compartido mantenido por el agente de ejecución. No lanza excepciones. |
[editar]Cerrojos no compartidos
Se dice que un cerrojo en un objeto es un cerrojo no compartido si se adquiere mediante una llamada a la función miembro lock
, try_lock
, try_lock_for
, o try_lock_until
.
[editar]Biblioteca estándar
Los siguientes tipos de la biblioteca estándar satisfacen los requisitos BasicLockable:
(C++11) | Proporciona servicios de exclusión mutua básicos. (clase) |
(C++11) | Proporciona un servicio de bloqueo mutuo que puede ser bloqueado recursivamente por el mismo hilo/subproceso. (clase) |
(C++11) | Proporciona un servicio de exclusión mutua que puede ser bloqueado recursivamente por el mismo hilo e implementa bloqueo con un tiempo de espera. (clase) |
(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) |
(C++11) | Proporciona un servicio de exclusión mutua que implementa bloqueo con un tiempo de espera. (clase) |