notify_one будит один поток, заблокированный на std::condition_variable. Рабочий поток дождется сигнала и выведет слово.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpThNo 557 of 696 menu
◀ ▶

Пробуждение notify_one в C++

Метод notify_one будит один поток, заблокированный на std::condition_variable.

Рабочий поток дождется сигнала и выведет слово:

#include <condition_variable> #include <iostream> #include <mutex> #include <thread> int main() { std::mutex mx; std::condition_variable cv; bool ping = false; std::thread worker([&]() { std::unique_lock<std::mutex> lock(mx); cv.wait(lock, [&]() { return ping; }); std::cout << "one\n"; }); { std::lock_guard<std::mutex> lock(mx); ping = true; } cv.notify_one(); worker.join(); return 0; }

Один поток ждет на condition_variable. Главный меняет bool под мьютексом и вызывает notify_one.

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