std::thread: объект больше нельзя join, а выполнение продолжается в фоне. Чтобы main не завершилась раньше фоновой.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpThDt 527 of 696 menu
◀ ▶

Отсоединение потока в C++

Метод detach отвязывает поток от объекта std::thread: объект больше нельзя join, а выполнение продолжается в фоне.

Чтобы main не завершилась раньше фоновой работы, поток поднимет флаг в std::atomic<bool>, а главный цикл дождется истинного значения:

#include <atomic> #include <iostream> #include <thread> int main() { std::atomic<bool> finished{false}; std::thread worker([&finished]() { std::cout << "bg\n"; finished.store(true); }); worker.detach(); while (!finished.load()) { } return 0; }

Отсоедините поток, который записывает 1 в std::atomic<int>. Главный поток ждет, пока значение станет 1.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить