Пространства имён
Варианты
Действия

std::mutex::try_lock

Материал из cppreference.com
< cpp‎ | thread‎ | mutex
 
 
Библиотека поддержки потоков
Потоки
Оригинал:
Threads
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
this_thread имен
Оригинал:
this_thread namespace
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Взаимное исключение
Оригинал:
Mutual exclusion
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Generic управления замком
Оригинал:
Generic lock management
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Условия переменных
Оригинал:
Condition variables
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Futures
Оригинал:
Futures
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
 
std::mutex
Функции-члены
Блокировка
Оригинал:
Locking
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
mutex::try_lock
Родные ручки
Оригинал:
Native handle
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
 
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 функция-член) [править]