Использование уникального мьютекса (uniquelock) вместе с conditionvariable важно, потому что это позволяет эффективно блокировать поток — он спит до получения уведомления, а не просто ждёт условия. 2
Также использование uniquelock упрощает обработку исключений, привязывая захват и освобождение мьютекса к времени жизни экземпляра conditionvariable. 4