Namespaces
Variants

std:: condition_variable_any

From cppreference.net
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
condition_variable_any
(C++11)
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe reclamation
Hazard pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
(C++11) (deprecated in C++26)
Free functions for atomic operations
Free functions for atomic flags
Definido en el encabezado <condition_variable>
class condition_variable_any ;
(desde C++11)

La clase condition_variable_any es una generalización de std::condition_variable . Mientras que std::condition_variable funciona únicamente con std:: unique_lock < std:: mutex > , condition_variable_any puede operar con cualquier bloqueo que cumpla los requisitos de BasicLockable .

Consulte std::condition_variable para la descripción de la semántica de las variables de condición.

La clase std::condition_variable_any es un StandardLayoutType . No es CopyConstructible , MoveConstructible , CopyAssignable , ni MoveAssignable .

Si el bloqueo es std:: unique_lock < std:: mutex > , std::condition_variable puede proporcionar mejor rendimiento.

Contenidos

Funciones miembro

construye el objeto
(función miembro pública)
destruye el objeto
(función miembro pública)
operator=
[deleted]
no asignable por copia
(función miembro pública)
Notificación
notifica un hilo en espera
(función miembro pública)
notifica todos los hilos en espera
(función miembro pública)
Espera
bloquea el hilo actual hasta que la variable de condición sea despertada
(función miembro pública)
bloquea el hilo actual hasta que la variable de condición sea despertada o después de la duración de tiempo de espera especificada
(función miembro pública)
bloquea el hilo actual hasta que la variable de condición sea despertada o hasta que se alcance el punto de tiempo especificado
(función miembro pública)

Notas

std::condition_variable_any puede utilizarse con std::shared_lock para esperar en un std::shared_mutex en modo de propiedad compartida.

Un posible uso para std::condition_variable_any con tipos Lockable personalizados es proporcionar esperas interrumpibles convenientes: la operación de bloqueo personalizada bloquearía el mutex asociado como se espera, y también realizaría la configuración necesaria para notificar a esta variable de condición cuando se reciba la señal de interrupción. [1]

Véase también

proporciona una variable de condición asociada con un std::unique_lock
(clase)

Enlaces externos

  1. Anthony Williams (2012, 1.ª ed./ 2019, 2.ª ed.), “C++ Concurrency in Action”, 9.2.4 “Interrumpir una espera en std::condition_variable_any ”.