网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

C++为什么不要直接使用lock/unlock

本篇内容介绍了“C++为什么不要直接使用lock/unlock”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

我们提供的服务有:网站建设、成都网站设计、微信公众号开发、网站优化、网站认证、吉隆ssl等。为上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的吉隆网站制作公司

CP.20:使用RAII,永远不要直接使用lock/unlock

Reason(原因)

Avoids nasty errors from unreleased locks.

避免由于锁没有释放而引起的严重问题。

Example, bad(反面实例)

mutex mtx;

void do_stuff()
{
   mtx.lock();
   // ... do stuff ...
   mtx.unlock();
}

Sooner or later, someone will forget the mtx.unlock(), place a return in the ... do stuff ..., throw an exception, or something.

早晚会有人忘记调用mtx.unlock(),将return语句放到...do stuff...的位置,抛出异常,或做点什么。

mutex mtx;

void do_stuff()
{
   unique_lock lck {mtx};
   // ... do stuff ...
}
Enforcement(实施建议)

标记直接调用lock或unlock成员函数的代码。

RAII

资源获取即初始化或者叫RAII,是一种必须在使用之前必须执行获取动作的资源(堆内存,线程,socket,文件,mutex,内存空间,数据库链接-以优先供给方式提供的任何东西)的生命周期和某个对象的生命周期绑定的C++编程技术。

“C++为什么不要直接使用lock/unlock”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


本文标题:C++为什么不要直接使用lock/unlock
文章位置:http://bjjierui.cn/article/ijjgii.html

其他资讯