У меня есть многопоточная программа, в которой два отдельных потока отправляют выходные данные отладки в std::clog, а выходные данные перемежаются. Я хотел бы найти простой способ заставить вывод, по крайней мере, быть отдельным, за исключением перевода строки на выходе. Таким образом, вывод отладки может быть более легко интерпретирован. В некоторых местах я вставлял sleep(1) перед выводом и собирал вывод в строку перед отправкой в засорение, чтобы уменьшить вероятность коллизии, но я бы предпочел более надежное и надежное решение.
Есть ли простой способ гарантировать, что каждый поток записывает целую строку за раз в std::clog до того, как другой поток сможет войти и написать свою собственную строку вывода?