wiem, że nie ma pojęcia wątków w bieżącej C++
, ale this article is saying:Czy standardowe strumienie wyjściowe są wątkowe w C++ (cout, cerr, clog)?
A typesafe, threadsafe przenośne mechanizm rejestrowania
.....
Funkcja
fprintf()
jest wątkowo bezpieczna, , więc nawet jeśli ten dziennik jest używany od różnych wątków, linie wyjściowe nie będzie kodowany.
Co cout
, cerr
i clog
?
Myślę, że to pytanie dotyczy wszystkich typów strumieni w C++, takich jak: fstream
i stringstream
.
[Uwaga: odpowiedź brzmi "tak", w C++ 11] (http://stackoverflow.com/a/6374525/87234). – GManNickG
@GManNickG: Używam Visual Studio 2013 C++ i cout nadal nie jest bezpieczny dla wątków. wyjścia na ekranie są w większości uszkodzone/wymieszane. –
@MehmetFide: Bezpieczeństwo wątków różni się od synchronizacji (ciągi mieszane/przeplecione); Standardy C++ 11 gwarantują, że implementacja nie prowadzi do wyścigów danych po użyciu tych obiektów z różnych wątków, podczas gdy Ty musisz upewnić się, że wiele połączeń 'operator <<' jest zsynchronizowanych. – legends2k