Partager via


Sécurité des threads dans la bibliothèque C++ standard

Les règles suivantes de sécurité des threads s'appliquent à toutes les classes de la bibliothèque C++ standard (sauf shared_ptr et les classes iostream, comme indiqué ci-dessous).

Un objet unique est thread-safe pour lire plusieurs threads.Par exemple, si un objet Possède, il est possible de lire Un du thread 1 et du thread 2 simultanément.

Si un objet unique est écrit par un thread, tous les le lit et écrit à cet objet sur le même ou d'autres threads doivent être protégées.Par exemple, si un objet Possède, si le thread 1 écrit dans Un, puis le thread 2 doit être inhibé de la lecture ou d'écriture dans un.

Il est possible de lire et d'écrire à une instance d'un type même si un autre thread est le lecture ou écriture dans une autre instance du même type.Supposons, par exemple des objets A et B de la même type, il est possible si Un est écrit dans les threads 1 et B est lu dans le thread 2.

shared_ptr

Plusieurs threads peuvent différents objets simultanément en lecture et en écriture de shared_ptr , même lorsque les objets sont des copies qui partagent la propriété.

classes iostream

Les classes iostream suivent les mêmes règles que les autres classes, avec une exception.Il est possible d'écrire dans un objet à partir de plusieurs threads.Par exemple, le thread 1 peut écrire dans cout en même temps que le thread 2.Toutefois, cela peut se produire dans sortie des deux thread qui est intercalée.

[!REMARQUE]

La lecture d'une mémoire tampon du flux n'est pas considérée comme une opération de lecture.Elle doit être considérée comme une opération d'écriture, car cela modifie l'état de la classe.

Voir aussi

Référence

Vue d'ensemble de la bibliothèque C++ standard