Condividi tramite


Thread safety della libreria C++ standard

Le seguenti regole di thread safety si applicano a tutte le classi della libreria C++ standard (ad eccezione shared_ptr e classi iostream, come illustrato di seguito).

Un singolo oggetto è thread-safe per la lettura da più thread.Ad esempio, dato un oggetto, è possibile leggere contemporaneamente Al thread 1 e al thread 2.

Se un singolo oggetto sta scrivendo da un thread, qualsiasi lettura e scrittura a tale oggetto sugli stessi o altri thread devono essere protette.Ad esempio, dato un oggetto, se il thread 1 è la scrittura su, il thread 2 deve essere impedito da lettura o dalla scrittura in un elemento.

È sicuro da leggere e scrivere in un'istanza di un tipo anche se un altro thread è lettura o scrive codice a un'istanza diversa dello stesso tipo.Ad esempio, gli oggetti forniti A e B dello stesso tipo, accertarsi se un oggetto sta scrivendo in thread 1 e B è thread letta in 2.

shared_ptr

I thread possono leggere e scrivere contemporaneamente diverso shared_ptr oggetti, anche se gli oggetti sono copie di condividere la proprietà.

classi iostream

Le classi iostream seguono le stesse regole delle altre classi, con un'eccezione.È protetto da scrittura in un oggetto da più thread.Ad esempio, il thread 1 possibile scrivere cout contemporaneamente al thread 2.Tuttavia, questo può derivare nell'output da due thread che sono mescolati.

[!NOTA]

La lettura da un buffer del flusso non è considerato un'operazione di scrittura.Deve essere considerato come un'operazione di scrittura, in quanto tale modifica lo stato della classe.

Vedere anche

Riferimenti

Panoramica della libreria C++ standard