В целом я предполагаю, что потоки не синхронизированы, и пользователь должен выполнить соответствующую блокировку. Тем не менее, делать такие вещи, как cout
получить специальное лечение в стандартной библиотеке?
То есть, если несколько потоков записывают в cout
, они могут повредить объект cout
? Я понимаю, что даже если вы синхронизированы, вы все равно получите случайный чередованный вывод, но это гарантированное чередование. То есть безопасно ли использовать cout
из нескольких потоков?
Является ли этот поставщик зависимым? Что делает gcc?
Важно: Пожалуйста, предоставьте какую-то ссылку на ваш ответ, если вы скажете "да", так как мне нужно какое-то подтверждение этого.
Моя забота также не о базовых системных вызовах, это прекрасно, но потоки добавляют слой буферизации сверху.