Partager via


<mutex>

Incluez l'en-tête standard <mutex> pour définir les classes mutex, recursive_mutex, timed_mutex, et recursive_timed_mutex; les modèles lock_guard et unique_lock; et types et fonctions multioctets qui définissent des régions de code d'exclusion mutuelle.

Cet en-tête utilise le runtime d'accès concurrentiel (ConcRT) pour pouvoir l'utiliser avec d'autres mécanismes de ConcRT.Pour plus d'informations sur ConcRT, consultez Concurrency Runtime.

#include <mutex>

Notes

[!REMARQUE]

Dans le code compilé à l'aide de /clr ou d' /clr:pure, cet en-tête est bloqué.

Les classes mutex et recursive_mutex sont des types de mutex.Un type de mutex a un constructeur par défaut et un destructeur qui ne lève pas d'exceptions.Ces objets ont des méthodes qui fournissent l'exclusion mutuelle lorsque test de threads pour verrouiller le même objet.Plus particulièrement, un type de mutex contient les méthodes lock, try_lock, et unlock:

  • La méthode d' lock bloque le thread appelant jusqu'à ce que le thread obtenir la propriété des mutex.Sa valeur de retour est ignorée.

  • Les tests de méthode d' try_lock pour obtenir la propriété des mutex sans se bloquer.Son type de retour est convertible à bool et est true si la méthode obtient la propriété, mais est sinon false.

  • La méthode d' unlock libère la propriété des mutex du thread appelant.

Vous pouvez utiliser des types de mutex comme arguments de type pour instancier les modèles lock_guard et unique_lock.Vous pouvez utiliser des objets de ces types en tant qu'argument d' Lock aux fonctions membres d'attente dans le modèle condition_variable_any.

Un type chronométré de mutex satisfait aux spécifications pour un type de mutex.De plus, il possède des méthodes d' try_lock_for et d' try_lock_until qui doivent être pouvant être appelées à l'aide de l'argument et doit retourner un type qui est convertible à bool.Un type chronométré de mutex peut définir ces fonctions à l'aide de les arguments supplémentaires, à condition que ces arguments supplémentaires tous ont les valeurs par défaut.

  • La méthode d' try_lock_for doit être appelé à l'aide de l'argument, Rel_time, dont le type est une instanciation d' chrono::duration.Les tests de méthode pour obtenir la propriété des mutex, mais retourne dans le temps qui est indiqué par Rel_time, quel que soit le succès.La valeur de retour convertit en true si la méthode obtient la propriété ; sinon, les convertit de valeur de retour à false.

  • La méthode d' try_lock_until doit être appelé à l'aide de l'argument, Abs_time, dont le type est une instanciation d' chrono::time_point.Les tests de méthode pour obtenir la propriété des mutex, mais retourne pas plus loin que le temps qui est indiqué par Abs_time, quel que soit le succès.La valeur de retour convertit en true si la méthode obtient la propriété ; sinon, les convertit de valeur de retour à false.

Un type de mutex est également appelé un type verrouillable.S'il ne fournit pas la fonction membre try_lock, il s'agit d' un type verrouillable de base.Un type chronométré de mutex est également appelé un type verrouillable expiré.

Hh921467.collapse_all(fr-fr,VS.110).gifClasses

Nom

Description

classe de lock_guard

Représente un modèle qui peut être instancié pour créer un objet dont le destructeur déverrouille mutex.

mutex Class (STL)

Représente un type de mutex.Utilisez les objets de ce type pour appliquer l'exclusion mutuelle dans le cadre d'un programme.

classe de recursive_mutex

Représente un type de mutex.Dans le constrast à la classe d' mutex, le comportement des méthodes d'appel de verrouillage pour les objets qui sont déjà verrouillés est correctement défini.

classe de recursive_timed_mutex

Représente un type chronométré de mutex.Utilisez les objets de ce type pour appliquer l'exclusion mutuelle temps qui est limitée le blocage dans le cadre d'un programme.Contrairement aux objets de type timed_mutex, l'effet d'appeler des méthodes de verrouillage pour les objets d' recursive_timed_mutex est correctement défini.

classe de timed_mutex

Représente un type chronométré de mutex.Utilisez les objets de ce type pour appliquer l'exclusion mutuelle temps qui est limitée le blocage dans le cadre d'un programme.

classe d'unique_lock

Représente un modèle qui peut être instancié pour créer des objets qui gèrent le verrouillage et déverrouiller d' mutex.

Hh921467.collapse_all(fr-fr,VS.110).gifFonctions

Nom

Description

fonction de call_once

Fournit un mécanisme pour appeler un objet appelé spécifié une seule fois pendant l'exécution.

lock Fonctions

Essaie de verrouiller tous les arguments sans interblocage.

Hh921467.collapse_all(fr-fr,VS.110).gifStructures

Nom

Description

structure d'adopt_lock_t

Représente un type qui est utilisé pour définir adopt_lock.

structure de defer_lock_t

Représente un type qui définit un objet d' defer_lock utilisé pour sélectionner l'un des constructeurs surchargés d' unique_lock.

structure d'once_flag

Représente struct utilisé avec la fonction call_once de modèle pour garantir que le code d'initialisation est appelé qu'une seule fois, même en présence plusieurs threads d'exécution.

structure de try_to_lock_t

Représente struct qui définit un objet d' try_to_lock et est utilisé pour sélectionner l'un des constructeurs surchargés d' unique_lock.

Hh921467.collapse_all(fr-fr,VS.110).gifVariables

Nom

Description

variable d'adopt_lock

Représente un objet qui peut être passé aux constructeurs pour qu' lock_guard et unique_lock indique que l'objet de mutex qui est également passé au constructeur est verrouillé.

variable de defer_lock

Représente un objet qui peut être passé au constructeur pour unique_lock, pour indiquer que le constructeur ne doit pas verrouiller l'objet de mutex qui est également passé.

variable de try_to_lock

Représente un objet qui peut être passé au constructeur pour qu' unique_lock indique que le constructeur doit essayer de déverrouiller mutex qui est également passé sans se bloquer.

Voir aussi

Autres ressources

Fichiers d'en-tête