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) |