TGViewer
Senior C++ Developer Senior C++ Developer @seniorcpp · 11.6K subscribers
Post #1448 2.93K
std::unique_lock

std::unique_lock — это объект блокировки, который управляет блокировкой мьютекса. Он обеспечивает более гибкое управление блокировкой, чем std::lock_guard, поскольку позволяет заблокировать и разблокировать мьютекс несколько раз.
std::unique_lock использует шаблон RAII (Resource Acquisition Is Initialization), это означает, что при создании объекта std::unique_lock он автоматически блокирует мьютекс, а при уничтожении объекта - автоматически разблокирует его.

В этом примере MyFunction использует std::unique_lock, чтобы заблокировать мьютекс, затем выполняет некоторые операции, разблокирует мьютекс и уведомляет condition. MyOtherFunction также использует std::unique_lock, чтобы заблокировать мьютекс, затем ждет уведомления от MyFunction с помощью метода wait условной переменной condition, и после этого разблокирует мьютекс.

Этот код демонстрирует использование std::unique_lock для синхронизации доступа к общим данным и для взаимодействия между потоками с помощью условных переменных.
More from @seniorcpp
  1. Oct 15, 2026Трюки с логарифмом Функцию log можно использовать для ряда изящных решений.
  2. Oct 14, 2026Алгоритмы all_of, any_of и none_of Начиная с C ++ 11, в STL C ++ добавляются некоторые нов…
  3. Oct 13, 2026Как написать «Змейку» на C++ в четыре переменные? Пишем классическую «Змейку», как на КДПВ…
  4. Oct 12, 2026Алгоритм set_symmetric_difference Строит отсортированную последовательность из элементов,…
  5. Oct 11, 2026Для чего нужен аллокатор и как создать свой собственный аллокатор? Аллокатор это шаблонный…
  6. Oct 10, 2026Макрос watch Макрос watch — один из самых полезных приёмов. При отладке кода watch(перемен…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →