Bibliothèque pour les processus légers (threads)
Le C++ supporte nativement les processus légers (threads), les verrous d'exclusion mutuelle (mutex), la synchronisation par variables conditionnelles et la gestion de tâches asynchrones (futures).
Sommaire |
[modifier] Processus légers (threads)
Les processus légers permettent à un programme de s'exécuter sur plusieurs cœurs d'un processeur simultanément.
Defined in header
<thread> | |
(C++11) |
gère un thread séparé (classe) |
Fonction gérant le processus léger courant | |
Defined in namespace
this_thread | |
(C++11) |
suggère que l'implémentation rééchelonne l'exécution des threads (fonction) |
(C++11) |
retourne l'id du thread courant (fonction) |
(C++11) |
arrête l'exécution du thread courant pendant la durée spécifiée (fonction) |
(C++11) |
arrête l'exécution du thread en cours jusqu'à un point spécifié dans le temps (fonction) |
[modifier] Exclusion mutuelle
Les algorithmes à base d'exclusion mutuelle empêchent plusieurs processeurs légers d'accéder de manière simultanée à des ressources partagées. Cela permet d'éviter des accès concurrents et permet la synchronisation entre les processus légers.
Defined in header
<mutex> | |
(C++11) |
fournit un mutex de base (classe) |
(C++11) |
fournit un mutex implémentant le vérrouillage avec délai d'attente (classe) |
(C++11) |
fournit le mutex qui peut être verrouillé de manière récursive par le même thread (classe) |
(C++11) |
fournit le mutex qui peut être verrouillé récursivement par le même thread et qui implémente le vérouillage avec délai d'attente (classe) |
Gestion des mutex | |
(C++11) |
met en œuvre un wrapper mutex strictement la portée de l'appropriation Original: implements a strictly scope-based mutex ownership wrapper The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (classe générique) |
(C++11) |
met en œuvre emballage mobile propriété mutex Original: implements movable mutex ownership wrapper The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (classe générique) |
type de variable permet de spécifier la stratégie de verrouillage Original: tag type used to specify locking strategy The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (classe) | |
constantes tag utilisé pour spécifier la stratégie de verrouillage Original: tag constants used to specify locking strategy The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (constante) | |
Algorithmes génériques de verrou | |
(C++11) |
tente d'obtenir la propriété des mutex via des appels répétés à try_lock Original: attempts to obtain ownership of mutexes via repeated calls to try_lock The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction générique) |
(C++11) |
verrouille les mutex, les blocs spécifiés le cas échéant ne sont pas disponibles Original: locks specified mutexes, blocks if any are unavailable The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction générique) |
Appel de fonction unique | |
(C++11) |
objet d'aide pour s'assurer que call_once invoque la fonction qu'une seule fois Original: helper object to ensure that call_once invokes the function only once The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (classe) |
(C++11) |
appelle une fonction qu'une seule fois, même si elle est appelée par plusieurs threads Original: invokes a function only once even if called from multiple threads The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction générique) |
[modifier] Les variables conditionnelles
Une variable conditionnelle est une primitive de synchronisation qui permet à plusieurs processus légers de communiquer entre eux. Cela permet qu'un certain nombre de processus légers attendent (avec expiration possible) une notification de la part d'un autre processus léger pour qu'ils puissent continuer. Une variable conditionnelle est toujours associée à un mutex.
Defined in header
<condition_variable> | |
(C++11) |
fournit une variable conditionnelle associée à un std::unique_lock (classe) |
(C++11) |
fournit une variable conditionnelle associée à n'importe quel type de verrou (classe) |
(C++11) |
prévoit un appel de notify_all qui sera exécuté lorsque ce processus léger sera terminé complètement (fonction) |
(C++11) |
liste les résultats possibles d'attente chronométrée sur des variables conditionnelles (enum) |
[modifier] Futures / Asynchronisme
La librairie standard fournit des outils pour obtenir les valeurs de retour ou rattraper les exceptions qui sont renvoyées par des tâches asynchrones (c'est-��-dire des fonctions lancées dans des processus légers séparés). Ces valeurs sont communiquées dans un état partagé, état dans lequel la tâche asynchrone peut écrire sa valeur de retour ou stocker une exception, et par ailleurs état dans lequel ces valeurs peuvent être utilisées, attendues ou manipulées par d'autres processus légers qui détiennent une instance de std::future ou std::shared_future qui fait référence à cet état partagé.
Defined in header
<future> | |
(C++11) |
stocke une valeur pour une récupération asynchrone Original: stores a value for asynchronous retrieval The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (classe générique) |
(C++11) |
paquets d'une fonction pour stocker sa valeur de retour pour la récupération asynchrone Original: packages a function to store its return value for asynchronous retrieval The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (classe générique) |
(C++11) |
attend une valeur qui est définie de manière asynchrone Original: waits for a value that is set asynchronously The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (classe générique) |
(C++11) |
attend une valeur (peut-être référencé par d'autres futurs) qui est fixé de manière asynchrone Original: waits for a value (possibly referenced by other futures) that is set asynchronously The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (classe générique) |
(C++11) |
exécute une fonction asynchrone (potentiellement dans un nouveau thread) et renvoie une std::future qui contiendra le résultat Original: runs a function asynchronously (potentially in a new thread) and returns a std::future that will hold the result The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction générique) |
(C++11) |
spécifie la politique de lancement de std::async Original: specifies the launch policy for std::async The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (enum) |
(C++11) |
précise les résultats de chronométrés temps d'attente effectuée sur std::future et std::shared_future Original: specifies the results of timed waits performed on std::future and std::shared_future The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (enum) |
Future errors | |
(C++11) |
signale une erreur liée aux contrats à terme ou des promesses Original: reports an error related to futures or promises The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (classe) |
(C++11) |
identifie la catégorie d'erreur avenir Original: identifies the future error category The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (fonction) |
(C++11) |
identifie les codes d'erreur futures Original: identifies the future error codes The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (enum) |