程序开辟中 , 多线程拜候共享数据的时辰 , 为了数据的同步性 , 点窜或者拜候数据前需要加锁 , 点窜或拜候完数据后 , 需要解锁 , 是以 , 本文将告诉你若何准确利用C++11供给的mutex锁 。
需要这些哦
C++11
方式/
1凡是的环境下 , 先挪用mutex的函数lock加锁 , 处置完当作数据后 , 再挪用函数unlock释放锁
文章插图
2调试运行 , 输出的打印信息如下图所示 , 表白正常解锁 , 而且释放锁
文章插图
3若是加锁后 , 进行数据处置的过程中异常 , 那么可能就没有解锁 , 如下图所示 , 加锁后 , 拜候了空的指针
文章插图
4调试运行发现呈现异常 , 而且没有准确的解锁
文章插图
5为了防止加锁后处置过程中呈现异常或者直接return而没有解锁 , 可以挪用lock_guard来加锁 , 而且主动解锁
文章插图
6从运行成果看 , 利用lock_guard后 , 程序可以正常运行
文章插图
7【如何正确使用mutex锁】最后也可以利用std::unique_lock来实现加锁和主动解锁
文章插图
注重事项喜好经验接待点赞投票!
以上内容就是如何正确使用mutex锁的内容啦 , 希望对你有所帮助哦!
推荐阅读
- 如何设置3D渲染参数。
- 如何利用AE去掉视频的水印【阿亮ae教程】
- 罗汉鱼如何进行换水
- 如何自制小螺丝刀
- 童鞋品牌排行榜,儿童鞋如何选择
- 怎样晒鱼干比较好
- 如何做一只小狐狸手工折纸
- 如何用彩纸折一只小豹子
- 如何做一只可爱的大象手工折纸
- 如何做一棵大树手工剪纸