lock_guardif you need to lock exactly 1 mutex for an entire scope.scoped_lockif you need to lock a number of mutexes that is not exactly 1.unique_lockif you need to unlock within the scope of the block (which includes use with acondition_variable).