C++中定义一个函数结束后自动释放的锁
来源:互联网 发布:特朗普访华知乎 编辑:程序博客网 时间:2024/06/10 18:59
- #include <windows.h>
- class InterLock
- {
- public:
- InterLock()
- {
- InitializeCriticalSection(&cs_);
- }
- ~InterLock()
- {
- DeleteCriticalSection(&cs_);
- }
- void enter()
- {
- EnterCriticalSection(&cs_);
- }
- void leave()
- {
- LeaveCriticalSection(&cs_);
- }
- private:
- CRITICAL_SECTION cs_;
- };
- template <typename LockType>
- class AutoLock
- {
- public:
- AutoLock(LockType& lock) : lock_(lock)
- {
- lock_.enter();
- }
- ~AutoLock()
- {
- lock_.leave();
- }
- private:
- LockType& lock_;
- };
- 现在当某个函数需要同步时,就可以在其初加上:
- InterLock lock_; AutoLock<InterLock> lock(lock_);
- 这样就会调用构造函数,从而加锁,而函数结束后,会自动调用析构函数,从而释放锁。
- 定义一个函数结束后自动释放的锁
- C++中定义一个函数结束后自动释放的锁
- 函数内定义非静态局部变量当函数运行结束后自动释放
- C/C++中关于函数调用结束后变量释放的问题
- 在函数中用const定义的常量在函数结束后内存是否释放了
- C++_静态局部变量的值在函数结束后不会释放,也不会被外部调用
- 一个释放后自动清空实例指针的类
- 一个释放后自动清空实例指针的类
- VC++6.0中定义一个类的对象后,用“.”访问其成员函数和成员变量时,其成员函数和成员变量没有自动弹出
- 函数资源的自动释放
- 17-1 函数运用结束之后内存就自动释放了,没有返回a,b的值
- 【规范】C语言中定义变量只能在一个函数或一个块的开始吗?
- 在槽函数中释放一个类的空间
- error:本地函数定义是非法的 此行有一个“{”没有匹配项,在注释中遇到意外的文件结束
- [C#]调用字符串中定义的函数
- 结束了毕业后的一个月
- OC--内存管理之自动释放,[NSMutableArray array]生成的自动释放数组被自动释放后引起的严重后果
- socket结束后如何立刻释放端口
- 产品经理的主要职责
- read 系统调用剖析
- VC++ ADO连接数据库操作
- J2ME程序开发全方位基础讲解汇总
- FILETIME的使用
- C++中定义一个函数结束后自动释放的锁
- Linux下两个不同版本Mysql的安装实战
- asp.net页面事件执行顺序
- 客户端验证框架(JavaScript)推荐
- 兼具 List 和 Map 的“容器”类 ListMap
- public继承后,父类与子类访问隐藏
- 如何安装配置基于两台服务器的MySQL集群
- Post和Get的区别(兼谈页面间传值的方式)
- 优秀产品经理的核心技能