У меня есть два варианта использования.
а. Я хочу синхронизировать доступ двумя потоками к очереди.
В. Я хочу синхронизировать доступ двумя потоками к очереди и использовать переменную условия, потому что один из потоков будет ждать содержимого, которое будет храниться в очереди другим потоком.
В случае использования A я вижу пример кода, используя std::lock_guard<>
. Для случая использования B я вижу пример кода, используя std::unique_lock<>
.
В чем разница между двумя, и какой из них я должен использовать, в каком случае?