@pixik

Почему иногда печатается одна и та же строка в отдельном потоке C++?

Почему дважды вывелась на печать единица в 3ей строчке?

void foo(){
    for(int i = 0; i < 5; i++){
        cout << "cout " << i << endl;
    }
}
int main() {
    thread t(foo);
    t.detach();
    assert(!t.joinable());
    std::cout << "Hello, World!" << std::endl;
    return 0;
}


вывод такой (один из множества вариантов):
Hello, World!cout 
0
cout 1cout 1
cout 2
c
  • Вопрос задан
  • 252 просмотра
Пригласить эксперта
Ответы на вопрос 1
скорее всего из-за эффекта flush при вызове < std::endl
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы