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