C++多线程中的锁和条件变量使用教程

2020-01-06 19:51:10王振洲

  • 当线程调用 g_cond.wait(lock) 前要先手动调用 lock->lock() ,这里是通过 std::unique_lock 的构造方法实现的;
  • 当线程调用 g_cond.wait(lock) 进入等待后,会调用 lock->unlock() 方法,所以这也是前面构造lock时使用了 std::unique_lock ;
  • 通知使用的 g_cond.notify_one() ,这个可以通知一个线程,另外还有 g_cond.notify_all() 用于通知所有线程;
  • 线程收到通知的代码放在一个while循环中,这是为了防止APUE中提到的虚假通知。

    结束语

    以上所述是小编给大家介绍的C++多线程中的锁和条件变量使用教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ASPKU网站的支持!


    注:相关教程知识阅读请移步到C++教程频道。