文档章节

以对象来管理资源

首席吹牛官
 首席吹牛官
发布于 2015/05/22 12:57
字数 130
阅读 2
收藏 0

              C++中局部变量在作用域里的构造和析构行为,为资源的管理提供了灵活安全的解决之道。
              下面以多线程的锁来举例
               

#ifndef LOCK_H
#define LOCK_H
class Lock
{
public:
    Lock(Mutex &m);
    ~Lock();
    Mutex *mutex;
};
#endif // LOCK_H


#include "lock.h"
Lock::Lock(Mutex &m):mutex(&m)
{
    mutex->lock();//加锁
}
Lock::~Lock()
{
    mutex->unlock();//解锁   
}

#include <iostream>
#include "lock.h"
using namespace std;
void makeLock(Mutex &m);
int main()
{
    cout << "Hello World!" << endl;
    return 0;
}
void makeLock(Mutex &m)
{
    Lock l(m);
    //dosomething...抛出异常也不会导致锁不能解开
    
}

© 著作权归作者所有

首席吹牛官
粉丝 9
博文 368
码字总数 191938
作品 0
闵行
程序员
私信 提问
利用IDisposable接口构建包含非托管资源对象

托管资源与非托管资源 在.net中,对象使用的资源分为两种:托管资源与非托管资源。托管资源由CLR进行管理,不需要开发人员去人工进行控制,.NET中托管资源主要指“对象在堆中的内存”;非托管...

帆帆帆
2018/11/12
0
0
C# vs C++之二:GC vs RAII

C# vs C++之二:GC vs RAII 资源管理 C中资源管理极为繁琐易错,大多复杂C系统都面临内存泄露、悬挂指针等问题 一方面由底层语言特点决定;另一方面也由于C语言特性相对较少,严重依赖程序员...

ddatsh
2011/06/28
1K
6
windows server 2016 活动目录(二)

AD对象 AD对象类型 用户 在AD域默认可以登陆任何具备信任关系的域中的计算机 访问应用,服务运行账户 访问网络资源(SSO) 默认加入域中的计算机,被域用户登陆后,在访问资源时,默认使用登...

haitao0228
2018/04/20
0
0
SQL Server 2008最直观的变化下(四)

继续来总结SQL Server 2008的直观变化。 6,SQL Server 2008引入了“对象资源管理器详细信息”代替了SQL Server 2005的“摘要”,当在SQL Server Management Studio中的对象资源管理器中选择...

terryli
2011/01/14
0
0
RAII

▲ memory leak 写在前面的话 在google上搜索关键字RAII, 有二百多万条搜索结果。说明这个话题在网上已经被讨论过无数次,也发现了一些好文章给我不少启发,这篇文章主要是做个总结并谈谈自己...

AlgoPeek
2017/06/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

skywalking(容器部署)

skywalking(容器部署) 标签(空格分隔): APM [toc] 1. Elasticsearch SkywalkingElasticsearch 5.X(部分功能报错、拓扑图不显示) Skywalking需要Elasticsearch 6.X docker network create......

JUKE
26分钟前
7
0
解决Unable to find a single main class from the following candidates [xxx,xxx]

一、问题描述 1.1 开发环境配置 pom.xml <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!--一定要对上springboot版本号,因......

TeddyIH
27分钟前
7
0
Dubbo服务限制大数据传输抛Data length too large: 13055248, max payload: 8388608解决方案

当dubbo服务提供者向消费层传输大数据容量数据时,会受到Dubbo的限制,报类似如下异常: 2019-08-23 11:04:31.711 [ DubboServerHandler-XX.XX.XX.XXX:20880-thread-87] - [ ERROR ] [com.al...

huangkejie
30分钟前
7
0
HashMap和ConcurrentHashMap的区别

为了线程安全,ConcurrentHashMap 引入了一个 “分段锁” 的概念。具体可以理解把一个大的 map 拆分成 N 个小的 Map 。最后再根据 key.hashcode( )来决定放到哪一个 hashmap 中去。 hashmap ...

Garphy
30分钟前
6
0
购买SSL证书需要注意哪些问题

为了保障网站的基本安全,为网站部署SSL证书,已经是一种常态了。各大浏览器对于安装了SSL证书的网站会更友好,并且不会发出“不安全”的提示。部署SSL证书之前首先得去给网站购买一个SSL证书...

安信证书
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部