Задать вопрос
@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
  • Вопрос задан
  • 261 просмотр
Подписаться 2 Оценить 5 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Нетология
    Специалист по информационной безопасности + нейросети
    12 месяцев
    Далее
  • Компьютерная академия «TOP»
    Учебная программа “Разработка программного обеспечения”
    30 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
скорее всего из-за эффекта flush при вызове < std::endl
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы