Partager via


mutex classe (bibliothèque standard C++)

Représente un type mutex. Vous pouvez utiliser des objets de ce type pour appliquer une exclusion mutuelle dans un programme.

Syntaxe

class mutex;

Membres

Constructeur public/destructeur

Nom Description
mutex Construit un objet mutex.
~mutex Libère toutes les ressources qui étaient utilisées par l’objet mutex.

Méthodes publiques

Nom Description
lock Bloque le thread appelant jusqu'à ce que le thread obtienne la propriété du mutex.
native_handle Retourne le type propre à l’implémentation qui représente le descripteur de mutex.
try_lock Tente d'obtenir la propriété de la référence mutex sans se bloquer.
unlock Libère la propriété du mutex.

Spécifications

En-tête : <mutex>

Espace de noms : std

lock

Bloque le thread appelant jusqu'à ce que le thread obtienne la propriété du mutex.

void lock();

Notes

Si le thread appelant possède déjà mutex, le comportement est indéfini.

Constructeur

Construit un mutex objet qui n’est pas verrouillé.
Avant Visual Studio 2022 17.10, l’implémentation de Microsoft de ce constructeur n’était pas constexpr. Maintenant, c’est constexpr.

mutex() noexcept;

Destructeur

Libère les ressources utilisées par l’objet mutex.

~mutex();

Notes

Si l'objet est verrouillé lorsque le destructeur s'exécute, le comportement est indéfini.

native_handle

Retourne le type propre à l’implémentation qui représente le descripteur de mutex. Vous pouvez utiliser le descripteur de plusieurs manières propres à l’implémentation.

native_handle_type native_handle();

Valeur de retour

native_handle_type est défini en tant que Concurrency::critical_section *. C’est cast comme void *.

try_lock

Tente d'obtenir la propriété de la référence mutex sans se bloquer.

bool try_lock();

Valeur retournée

true si la méthode obtient correctement la propriété du mutex ; sinon, false.

Notes

Si le thread appelant possède déjà mutex, le comportement est indéfini.

unlock

Libère la propriété du mutex.

void unlock();

Notes

Si le thread appelant ne possède pas le mutexthread d’appel, le comportement n’est pas défini.

Voir aussi

Informations de référence sur les fichiers d’en-tête
<mutex>