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
Défini dans l'en-tête <condition_variable>
class condition_variable_any ;
(depuis C++11)

La classe condition_variable_any est une généralisation de std::condition_variable . Alors que std::condition_variable fonctionne uniquement avec std:: unique_lock < std:: mutex > , condition_variable_any peut fonctionner avec tout verrou qui satisfait aux exigences BasicLockable .

Voir std::condition_variable pour la description de la sémantique des variables de condition.

La classe std::condition_variable_any est un StandardLayoutType . Elle n'est ni CopyConstructible , MoveConstructible , CopyAssignable , ni MoveAssignable .

Si le verrou est std:: unique_lock < std:: mutex > , std::condition_variable peut offrir de meilleures performances.

Table des matières

Fonctions membres

construit l'objet
(fonction membre publique)
détruit l'objet
(fonction membre publique)
operator=
[deleted]
non assignable par copie
(fonction membre publique)
Notification
notifie un thread en attente
(fonction membre publique)
notifie tous les threads en attente
(fonction membre publique)
Attente
bloque le thread courant jusqu'au réveil de la variable condition
(fonction membre publique)
bloque le thread courant jusqu'au réveil de la variable condition ou après la durée de timeout spécifiée
(fonction membre publique)
bloque le thread courant jusqu'au réveil de la variable condition ou jusqu'à l'atteinte du point temporel spécifié
(fonction membre publique)

Notes

std::condition_variable_any peut être utilisé avec std::shared_lock afin d'attendre sur un std::shared_mutex en mode de propriété partagée.

Une utilisation possible de std::condition_variable_any avec des types Lockable personnalisés est de fournir des attentes interrompables pratiques : l'opération de verrouillage personnalisée verrouillerait à la fois le mutex associé comme prévu, et effectuerait également la configuration nécessaire pour notifier cette variable de condition lorsque le signal d'interruption est reçu. [1]

Voir aussi

fournit une variable de condition associée à un std::unique_lock
(classe)

Liens externes

  1. Anthony Williams (2012, 1ère éd./ 2019, 2ème éd.), « C++ Concurrency in Action », 9.2.4 « Interruption d'une attente sur std::condition_variable_any ».