Страницы

Поиск по вопросам

вторник, 31 марта 2020 г.

Чем std::unique_lock отличается от std::lock_guard?

#cpp #синхронизация #cpp14


Чем std::unique_lock отличается от std::lock_guard? В каких ситуациях лучше применять
один класс, а в каких другой?
    


Ответы

Ответ 1



lock_guard и unique_lock - почти то же самое. Разница в том, что вы можете заблокировать и разблокировать std :: unique_lock. std :: lock_guard будет заблокирован только один раз при построении и разблокирован при уничтожении. lock_guard: когда объект создан, он пытается получить мьютекс (вызывая lock()), а когда объект уничтожен, он автоматически освобождает мьютекс (вызывая unlock()). unique_lock: также поддерживает отложенную блокировку, временную блокировку, рекурсивную блокировку и использование условных переменных. Источник

Комментариев нет:

Отправить комментарий