critical_section, classe
Mutex non réentrant qui a explicitement connaissance du runtime d'accès concurrentiel.
Syntaxe
class critical_section;
Membres
Typedefs publics
Nom | Description |
---|---|
native_handle_type |
Référence à un objet critical_section . |
Classes publiques
Nom | Description |
---|---|
classe critical_section ::scoped_lock | Wrapper RAII sécurisé d’exception pour un critical_section objet. |
Constructeurs publics
Nom | Description |
---|---|
critical_section | Construit une nouvelle section critique. |
~critical_section Destructeur | Détruit une section critique. |
Méthodes publiques
Nom | Description |
---|---|
lock | Acquiert cette section critique. |
native_handle | Retourne un handle natif spécifique à la plateforme, s’il en existe un. |
try_lock | Tente d’acquérir le verrou sans bloquer. |
try_lock_for | Tente d’acquérir le verrou sans bloquer un nombre spécifique de millisecondes. |
unlock | Déverrouille la section critique. |
Notes
Pour plus d’informations, consultez Structures de données de synchronisation.
Hiérarchie d'héritage
critical_section
Spécifications
En-tête : concrt.h
Espace de noms : concurrency
critical_section
Construit une nouvelle section critique.
critical_section();
~critical_section
Détruit une section critique.
~critical_section();
Notes
On s’attend à ce que le verrou ne soit plus conservé lorsque le destructeur s’exécute. L’autorisation de la section critique à détruire avec le verrou entraîne toujours un comportement non défini.
lock
Acquiert cette section critique.
void lock();
Notes
Il est souvent plus sûr d’utiliser la construction scoped_lock pour acquérir et libérer un critical_section
objet de manière sécurisée.
Si le verrou est déjà conservé par le contexte appelant, une exception improper_lock est levée.
native_handle
Retourne un handle natif spécifique à la plateforme, s’il en existe un.
native_handle_type native_handle();
Valeur de retour
Référence à la section critique.
Notes
Un critical_section
objet n’est pas associé à un handle natif spécifique à la plateforme pour le système d’exploitation Windows. La méthode retourne simplement une référence à l’objet lui-même.
classe critical_section ::scoped_lock
Wrapper RAII sécurisé d’exception pour un critical_section
objet.
class scoped_lock;
scoped_lock ::scoped_lock
Construit un scoped_lock
objet et acquiert l’objet critical_section
passé dans le _Critical_section
paramètre. Si la section critique est conservée par un autre thread, cet appel bloque.
explicit _CRTIMP scoped_lock(critical_section& _Critical_section);
Paramètres
_Critical_section
Section critique à verrouiller.
scoped_lock ::~scoped_lock
Détruit un scoped_lock
objet et libère la section critique fournie dans son constructeur.
~scoped_lock();
try_lock
Tente d’acquérir le verrou sans bloquer.
bool try_lock();
Valeur de retour
Si le verrou a été acquis, la valeur true
; sinon, la valeur false
.
try_lock_for
Tente d’acquérir le verrou sans bloquer un nombre spécifique de millisecondes.
bool try_lock_for(unsigned int _Timeout);
Paramètres
_Timeout
Nombre de millisecondes à attendre avant l’expiration du délai d’attente.
Valeur de retour
Si le verrou a été acquis, la valeur true
; sinon, la valeur false
.
déverrouiller
Déverrouille la section critique.
void unlock();
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour