So che non esiste il concetto di thread nel corrente C++
, ma this article is saying:I flussi di output standard in C++ sono thread-safe (cout, cerr, clog)?
A typesafe, threadsafe, portatile meccanismo di registrazione
.....
La funzione
fprintf()
è protetta da thread, quindi, anche se questo registro viene utilizzato da thread diversi, le righe di output non verrà codificato.
Che dire cout
, cerr
e clog
?
Penso che questa domanda sia applicabile a tutti i tipi di flusso in C++ anche, come fstream
e stringstream
.
[Nota: la risposta è ora "sì", in C++ 11] (http://stackoverflow.com/a/6374525/87234). – GManNickG
@GManNickG: Uso Visual Studio 2013 C++ e cout non è ancora sicuro. le uscite sullo schermo sono per lo più corrotte/mescolate. –
@MehmetFide: la sicurezza del thread è diversa dalla sincronizzazione (stringhe miste/interfogliate); Lo standard C++ 11 garantisce che l'implementazione non porti a razze di dati sull'utilizzo di questi oggetti da thread diversi, mentre è compito dell'utente assicurarsi che più chiamate "operator <<" siano sincronizzate. – legends2k