Исправление slovazap, (текущая версия) :
Всё правильно ты делаешь с выводом на экран за исключением испольования cout вместо cerr и вызовом flush после endl, который сам зовёт flush, но это только косметические проблемы.
А вывод такой потому что созданный thread совершенно не обязан сразу запланироваться, соответственно некоторые потоки начинают выполняться только когда основной поток входит в join.
Исправление slovazap, :
Всё правильно ты делаешь с выводом на экран за исключением испольования cout вместо cerr и вызовом flush после endl, который сам зовёт flush, но это только косметические проблемы.
А вывод такой потому что созданный thread совершенно не обязан сразу запланироваться, соответственно некоторые потоки запускаются когда основной поток входит в join.
Исходная версия slovazap, :
Всё правильно ты делаешь с выводом на экран за исключением испольования cout вместо cerr и вызовом flush после endl, который сам зовёт flush, но это косметические пролебы.
А вывод такой потому что созданный thread совершенно не обязан сразу запланироваться, соответственно некоторые потоки запускаются когда основной поток входит в join.