Защелка std::latch в C++
Одноразовый счетчик ожиданий - это std::latch:
wait блокируется, пока счетчик не
обнулится через count_down.
Поток подождет защелку, главный опустит счетчик и дождется печати:
#include <iostream>
#include <latch>
#include <thread>
int main() {
std::latch start{1};
std::thread worker([&]() {
start.wait();
std::cout << "latch\n";
});
start.count_down();
worker.join();
return 0;
}
Создайте std::latch с 1. Поток ждет wait, главный делает count_down.