std::lock

    技术2026-01-15  5

    是std::lock_guard。这东西是干什么的呢?它是与mutex配合使用,把锁放到lock_guard中时,mutex自动上锁,lock_guard析构时,同时把mutex解锁。 把先看一段简单代码。 #include <thread>  #include <mutex>    int g_i = 0;  std::mutex g_i_mutex;  // protects g_i    void safe_increment()  {      std::lock_guard<std::mutex> lock(g_i_mutex);      ++g_i;        // g_i_mutex is automatically released when lock      // goes out of scope  }      int main()  {      std::thread t1(safe_increment);      std::thread t2(safe_increment);        t1.join();      t2.join();  }  std::lock_guard是一个局部变量,创建时,g_i_mutex 上锁,析构时g_i_mutex解锁。 这个功能在函数体比较长,尤其是存在多个分支的时候很有用。 ———————————————— 版权声明:本文为博主「萧戈」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/xiaoyafang123/article/details/54137611

    Processed: 0.018, SQL: 9