#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: также поддерживает отложенную блокировку, временную блокировку, рекурсивную блокировку и использование условных переменных. Источник
Комментариев нет:
Отправить комментарий