std::timed_mutex: попытка захвата берется из заголовка #include .">
⊗cpSpThTm 540 of 696 menu

Мьютекс с таймаутом в C++

Предел по времени к обычному замку добавляет std::timed_mutex: попытка захвата берется из заголовка #include <chrono>.

Главный поток удержит lock, рабочий проверит try_lock_for и сообщит результат:

#include <chrono> #include <iostream> #include <mutex> #include <thread> int main() { std::timed_mutex mx; mx.lock(); std::thread worker([&]() { bool ok = mx.try_lock_for(std::chrono::milliseconds(2)); if (ok) { std::cout << "got\n"; mx.unlock(); } else { std::cout << "wait\n"; } }); mx.unlock(); worker.join(); return 0; }

Удерживайте std::timed_mutex в main, пока другой поток пробует try_lock_for на 3 мс. Освободите замок до join.

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