std::lock
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header <mutex>
   | 
||
|   template< class Lockable1, class Lockable2, class LockableN... > void lock( Lockable1& lock1, Lockable2& lock2, LockableN& lockn... );  | 
(since C++11) | |
Locks the given lockable objects lock1, lock2, ..., lockn without resulting in a deadlock. The objects are locked by calls to lock(), try_lock(), unlock() in an unspecified order.
If a call to lock() or unlock() results in an exception, unlock() is called for any locked objects before rethrowing.
Contents | 
[edit] Parameters
| lock1, lock2, ... , lockn | - | the lockable objects to lock | 
[edit] Return value
(none)
[edit] Example
| This section is incomplete Reason: no example  | 
[edit] See also
|    (C++11)  | 
   locks specified mutexes/locks, returns false if at least one is unavailable   (function template)  |