如何正确使用mutex锁

程序开辟中,多线程拜候共享数据的时辰,为了数据的同步性,点窜或者拜候数据前需要加锁,点窜或拜候完数据后,需要解锁,是以,本文将告诉你若何准确利用C++11供给的mutex锁。

东西/原料

  • C++11

方式/步调

  1. 1

    凡是的环境下,先挪用mutex的函数lock加锁,处置完当作数据后,再挪用函数unlock释放锁

  2. 2

    调试运行,输出的打印信息如下图所示,表白正常解锁,而且释放锁

  3. 3

    若是加锁后,进行数据处置的过程中异常,那么可能就没有解锁,如下图所示,加锁后,拜候了空的指针

  4. 4

    调试运行发现呈现异常,而且没有准确的解锁

  5. 5

    为了防止加锁后处置过程中呈现异常或者直接return而没有解锁,可以挪用lock_guard来加锁,而且主动解锁

  6. 6

    从运行成果看,利用lock_guard后,程序可以正常运行

  7. 7

    最后也可以利用std::unique_lock来实现加锁和主动解锁

注重事项

  • 喜好经验接待点赞投票!
  • 经验由 YWMLI1 原创,首发百度经验,转载请注明出处!
  • 发表于 2019-07-01 17:02
  • 阅读 ( 858 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
联系我们:uytrv@hotmail.com 问答工具