Freigeben über


Threadsicherheit in der C++-Standardbibliothek

Die Sicherheitseinstellungen Thread folgenden Regeln gelten für alle Klassen in der C++-Standardbibliothek (außer shared_ptr und iostream Klassen wie im Folgenden beschrieben).

Ein einzelnes Objekt ist für das Lesen von mehreren Threads threadsicher.Beispielsweise ein Objekt A, empfiehlt es sich, A der Thread 1 und 2 Threads gleichzeitig zu lesen.

Wenn ein einzelnes Objekt durch einen Thread geschrieben wird, liest und schreibt alle für dieses Objekt auf den gleichen oder anderen Threads müssen geschützt sind.Beispielsweise müssen ein Objekt A, wenn Thread A 1 schreibt dann von 2 Thread verhindert werden Lesen aus und Schreiben in ein.

Zu schreibender ist unbedingt zu einer Instanz eines Typs zu lesen und selbst wenn ein anderer Thread ist, Lesen oder Schreiben einer anderen Instanz desselben Typs.Zum Beispiel A und B angegebene Objekte desselben Typs, empfiehlt es sich, wenn Thread A in 1 geschrieben wurde und B in Thread 2 gelesen wird.

shared_ptr

Mehrere Threads können verschiedene shared_ptr-Objekte gleichzeitig lesen und schreiben. Dies gilt auch, wenn die Objekte gleich sind, Kapitalbeteiligung kopieren.

iostream Klassen

Die folgenden Klassen iostream die gleichen Regeln wie die anderen Klassen mit einer Ausnahme.Zu schreibender ist unbedingt auf ein Objekt von mehreren Threads.Beispielsweise kann Thread gleichzeitig mit 1 Thread 2 geschrieben. cout .Allerdings kann dies die Ausgabe von den beiden Threads entstehen, die kombiniert werden.

HinweisHinweis

Lesen aus dem Streampuffer werden nicht als Lesevorgang betrachtet.Es sollte als einen Schreibvorgang betrachtet werden, da es den Zustand der Klasse ändert.

Siehe auch

Referenz

C++-Standardbibliothek-Übersicht