Example
std::lock
uses deadlock avoidance algorithms to lock one or more mutexes. If an exception is thrown during a call to lock multiple objects, std::lock
unlocks the successfully locked objects before re-throwing the exception.
std::lock(_mutex1, _mutex2);