Share via


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

accès concurrentiel Namespace
reader_writer_lock, classe