std::recursive_mutex::try_lock
Материал из cppreference.com
< cpp | thread | recursive mutex
bool try_lock(); |
(начиная с C++11) | |
Пытается заблокировать мьютекс. Возврат происходит немедленно. В случае успешной установки блокировки возвращается true, в противном случае возвращается false.
Содержание |
[править] Параметры
(нет)
[править] Возвращаемое значение
true, если блокировка была установлена, в противном случае - false.
[править] Исключения
Этот раздел не завершён |
[править] Пример
Этот пример демонстрирует использование lock
, try_lock
и unlock
Запустить этот код
#include <iostream> #include <mutex> int main() { std::mutex test; if (test.try_lock()==true) std::cout << "блокировка установлена" << std::endl; else std::cout << "блокировка не установлена" << std::endl; test.unlock(); //теперь разблокируем мьютекс test.lock(); //заблокируем его снова if (test.try_lock()) //true можно опустить std::cout << "блокировка установлена" << std::endl; else std::cout << "блокировка не установлена" << std::endl; test.lock(); //и последнее (заблокируем) }
Вывод:
блокировка установлена блокировка не установлена (программа аварийно завершается)
[править] См. также
блокирует мьютекс, блокируется, если мьютекс недоступен (public функция-элемент) | |
разблокирует мьютекс (public функция-элемент) |