std::barrier: нужно заданное число участников, и после каждой фазы можно вызвать функцию. Два потока встретятся на барьере, а завершение фазы.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpThBr 563 of 696 menu
◀ ▶

Барьер std::barrier в C++

Общую фазу ждет std::barrier: нужно заданное число участников, и после каждой фазы можно вызвать функцию.

Два потока встретятся на барьере, а завершение фазы выведет слово:

#include <barrier> #include <iostream> #include <thread> int main() { std::barrier sync(2, []() noexcept { std::cout << "phase\n"; }); std::thread helper([&]() { sync.arrive_and_wait(); }); sync.arrive_and_wait(); helper.join(); return 0; }

Постройте std::barrier на 2 участника с callback, печатающим "step". Оба потока вызывают arrive_and_wait.

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