Locking multiple mutexes

后端 未结 3 1067
猫巷女王i
猫巷女王i 2020-12-16 12:31

I\'m wondering if it\'s possible to lock multiple mutexes at the same time, like:

 Mutex1.Lock();
 {
     Mutex2.Lock();
     {
          // Code locked by m         


        
3条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-16 12:45

    C++17 also provides scoped_lock for the specific purpose of locking multiple mutexes that prevents deadlock in a RAII style, similar to lock_guard.

    #include
    
    std::mutex mtx1, mtx2;
    void foo()
    {
        std::scoped_lock lck{mtx1, mtx2};
        // proceed
    }
    

提交回复
热议问题