E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
raii
boost -- scoped_lock V.S. mutex lock/unlock —— why scoped_lock is recommanded?
其实,这和
RAII
idiom变流行是一样的原因:因为你可以确保任何情况下离开执行范围都会解锁mutex。
·
2015-11-10 22:49
command
auto_ptr浅析
auto_ptr是C++标准库中(<utility>)为了解决资源泄漏的问题提供的一个智能指针类模板(注意:这只是一种简单的智能指针) auto_ptr的实现原理其实就是
RAII
,在构造的时候获取资源
·
2015-11-08 14:36
auto
Effective C++ 笔记 第三部分 资源管理
13.以对象管理资源(Useobjectstomanageresources)为防止资源泄露,请使用
RAII
(资源取得时机便是初始化时机)对象,他们在构造函数中获得资源并在析构函数中释放资源。
zhangqixiang5449
·
2015-11-08 00:00
C++
当OOP语言
RAII
特性发展到functional形式的极致
本文主要站在C++程序员的思维角度思量。 functional之路 lambda表达式 lambda表达式,是一段代码片段。函数实现体中出现的可重用的代码块。 在C++之前,C语言最小可复用流程模块,是函数;只有函数是用以处理不同类型数据的代码块,书写一次可多次被调用以重复利用优化设计,减少工程复杂度。 C++出来之后,并没有立即改进函数设计的代码技术,而是首先由boost第三方库锻造出
·
2015-11-07 12:21
function
auto_ptr浅析
1766555.html auto_ptr是C++标准库中(<utility>)为了解决资源泄漏的问题提供的一个智能指针类模板(注意:这只是一种简单的智能指针) auto_ptr的实现原理其实就是
RAII
·
2015-11-07 12:47
auto
条款42 智能指针
在C++中,非常常用的一种技术就是智能指针,智能指针其实是
RAII
技术的一种应用,通过构建类类型实例的生命周期来管理指针,控制指针的初始化和资源释放。
·
2015-11-02 19:18
指针
【原创】利用C++
RAII
技术自动回收堆内存
【说明】这篇文章本来发布在我个人网站的博客上,但由于:1,打算以cnblogs为家了;2. 关于智能指针部分需要修订,所有将修订版发在这里,作为第一篇文章。 常遇到的动态内存回收问题 在C++的编程过程中,我们经常需要申请一块动态内存,然后当用完以后将其释放。通常而言,我们的代码是这样的: 1: void func() 2: { 3: //allocate
·
2015-11-02 18:09
C++
RAII
惯用法:C++资源管理的利器
原文地址:http://www.cnblogs.com/hsinwang/articles/214663.html
RAII
惯用法:C++资源管理的利器
RAII
是指C++语言中的一个惯用法
·
2015-11-02 12:10
C++
C++构造函数异常(一)
C++ 构造函数的异常是一个比较难缠的问题,很多时候,我们可能不去考虑这些问题,如果被问到,有人可能会说使用
RAII
管理资源。
·
2015-11-01 12:12
构造函数
RAII
惯用法:C++资源管理的利器
RAII
是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。
·
2015-11-01 10:33
C++
RAII
(Resource Acquisition Is Initialization)资源获得式初始化
当在编写代码中用到异常,非常重要的一点是:“如果异常发生,程序占用的资源都被正确地清理了吗?” 大多数情况下不用担心,但是在构造函数里有一个特殊的问题:如果一个对象的构造函数在执行过程中抛出异常,那么这个对象的析构函数就不会被调用。 困难的事情是在构造函数中分配资源。如果在构造函数中发生异常,析构函数将没有机会释放这些资源。 这个问题经常伴随着”悬挂“指针出现。 例如:
·
2015-11-01 09:33
resource
RAII
and smart pointers in C++ from stackflow
A simple (and perhaps overused) example of
RAII
is a File class.
·
2015-10-31 14:36
stack
Consider
RAII
first before you use new,malloc
RAII
= Resource Acquisition Is Initialisation。资源获得就是初始化?什么意思?
·
2015-10-31 13:33
malloc
当OOP语言
RAII
特性发展到functional形式的极致
本文主要站在C++程序员的思维角度思量。 functional之路 lambda表达式 lambda表达式,是一段代码片段。函数实现体中出现的可重用的代码块。 在C++之前,C语言最小可复用流程模块,是函数;只有函数是用以处理不同类型数据的代码块,书写一次可多次被调用以重复利用优化设计,减少工程复杂度。 C++出来之后,并没有立即改进函数设计的代码技术,而是首先由boost第三方库锻造出
·
2015-10-31 11:32
function
关于auto_ptr的那些事
auto_ptr是
RAII
的一个应用,其对象最美妙之处在于如果它被声明为一个函数的局部变量,或作为函数的参数,甚至是一个静态对象,我们都
·
2015-10-31 10:51
auto
主流
RAII
class的存在价值——..
前言 前几天在很多地方老是碰到
RAII
(Resouce Acqusition Is Initialition)相关的话题,对于这一块,由于自己以前在代码中很少用到,从来都习惯于使用dumb
·
2015-10-31 09:29
Class
C++内存管理原则
内存管理的方式有3种:
RAII
, 智能指针或者GC. 不推荐自己管理裸指针. C++的内存管理其实是一个哲学问题: 怎样才能确定一个东西没有被其他地方使用?
·
2015-10-31 09:07
内存管理
shared_ptr&scoped_ptr&weak_ptr
【
RAII
- Resource Acquisition Is Initialization】 获得一个资源的时候,不管这个资源是对象、内存、文件句柄或者其它什么,你都要在一个对象的构造函数中获得它
·
2015-10-31 08:10
scope
C++营养(
RAII
)
C++的营养 莫华枫 动物都会摄取食物,吸收其中的营养,用于自身生长和活动。然而,并非食物中所有的物质都能为动物所吸收。那些无法消化的物质,通过消化道的另一头(某些动物消化道只有一头)排出体外。不过,一种动物无法消化的排泄物,是另一种动物(生物)的食物,后者可以从中摄取所需的营养。 一门编程语言,对于
·
2015-10-30 13:53
C++
RAII
惯用法详解
【1】什么是
RAII
惯用法?
RAII
是Resource Acquisition Is Initialization的缩写,意为“资源获取即初始化”。
·
2015-10-27 12:43
用法
C++
RAII
手法实例,不使用智能指针
/* *===================================================================================== * *Filename: * *Description:Commonfunction * *Version:1.0 *Created:2015年11月25日16时11分13秒 *Revision:non
betachen
·
2015-10-27 00:00
RAII
和GC
【转载自:http://blog.csdn.net/Elminster/archive/2004/02/18/9741.aspx】 先来看一小段代码,它取自 Bjarne Stroustrup 的演讲“Speaking C++ as a Native”: // use an object to represent a resource ("resource acquisition i
·
2015-10-24 09:06
GC
shared_ptr注意事项
这种问题的解决办法就是
RAII
2、全局变量,取得shared_ptr
·
2015-10-23 09:56
sha
C# vs C++之二:GC vs
RAII
C#和C++两门语言的定位不同,它们在资源管理方面采取了两种截然不同的方式:一为GC,一为
RAII
。GC让程序建立在更高的抽象层次上,使资源管理变得更方便,更安全;
·
2015-10-21 13:40
C++
【C++设计技巧】C++中的
RAII
机制
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.概念 Resource Acquisition Is Initialization 机制是Bjarne Stroustrup首先提出的。要解决的是这样一个问题: 在C++中,如果在这个程序段结束时需要完成一些资源释放工作,那么正常情况下自然是没有什么问题,但是当一个异常抛出时,释放资源的语句就不会被执
·
2015-10-21 12:03
C++
Effective C++ Item 15 Provide access to raw resources in resource-managing classes
In last two item, I talk about resource-managing using
RAII
, now comes to the practical part.
·
2015-10-21 11:11
effective
Effective C++ Item 14 Think carefully about copying behavior in resource-managing classe
after an exception is thrown are the destructors of objects residing in stack and that's why we need
RAII
·
2015-10-21 11:11
effective
auto_ptr 浅析
auto_ptr是C++标准库中(<utility>)为了解决资源泄漏的问题提供的一个智能指针类模板(注意:这只是一种简单的智能指针) auto_ptr的实现原理其实就是
RAII
,在构造的时候获取资源
·
2015-10-21 11:51
auto
C++11 并发指南三(Lock 详解)
C++11 标准为我们提供了两种基本的锁类型,分别如下: std::lock_guard,与 Mutex
RAII
相关,方便线程对互斥量上锁。 std::unique_lock,与 M
·
2015-10-19 10:23
Lock
C++面试常见题目问与答(汇总二)
主要是侧重回答一些比较重一些的问题,比如智能指针、
RAII
机制还有最长被问到的C++的多态。首先是智能指针。1.智能指针上一期介绍一下智能指针在用法的上要注意的部分,这次主要介绍一下为什么。
charles_r_chiu
·
2015-09-05 18:00
内存
指针
智能指针
C++11
RAII
RAII
[1] (ResourceAcquisitionIsInitialization),也称为“资源获取就是初始化”,是C++语言的一种管理资源、避免泄漏的惯用法。
qdqade
·
2015-08-31 21:57
RAII
Item 14:资源管理类要特别注意拷贝行为 Effective C++笔记
Item14:Thinkcarefullyaboutcopyingbehaviorinresource-managingclasses.在Item13:使用对象来管理资源中提出了基于
RAII
的资源管理对象
yangjvn
·
2015-08-27 09:00
C++ Primer 学习笔记_42_面向对象编程(9)--虚函数与多态(六):auto_ptr与shared_ptr、对象/值语义、资源管理(
RAII
)、实现auto_ptr、Ptr_vector
一、auto_ptr与shared_ptr1、auto_ptr auto_ptr是当前C++标准库中提供的一种智能指针。 auto_ptr类是接受一个类型形参的模板,它为动态分配的对象提供异常安全,auto_ptr类在头文件memory中定义。auto_ptr类auto_ptrap;创建名为ap的未绑定的auto_ptr对象auto_ptrap(p);创建名为ap的auto_ptr对象,a
keyyuanxin
·
2015-08-22 15:00
RAII
RAII
中资源的持有是与对象的生命周期完全吻合在一起的:资源分配在对象创建的时候完成,而在对象析构时完成资源的释放。只要对象适当地销毁,资源泄漏就不会发生。
纵横而乐
·
2015-06-16 15:01
c++ 智能指针及 循环引用问题
如此c++引入智能指针 ,智能指针即是C++
RAII
的一种应用,可用于动态资源管理,资源即对象的管理策略。 智能指针在 标头文件的 std 命名空间中定义。 它们对
RAII
或获
xtzmm1215
·
2015-05-20 11:00
RAII
vs. exceptions
析构函数不能抛出异常, 原因 析构函数已经变成了异常处理的一部分 如果对象出了异常,现在异常处理模块为了维护系统对象数据的一致性,避免资源泄漏,有责任释放这个对象的资源,调用对象的析构函数,可现在假如析构过程又再出现异常,那么请问由谁来保证这个对象的资源释放呢?而且这新出现的异常又由谁来处理呢? 咋办呢? 3.2 那么当无法保证在析构函数中不发生异常时, 该怎么办? 其
·
2015-04-30 23:00
exception
RAII
(资源获取即初始化)详解
概念使用局部对象管理资源的技术通常称为“资源获取就是初始化”ResourceAcquisitionIsInitialization机制是BjarneStroustrup首先提出的。要解决的是这样一个问题:在C++中,如果在这个程序段结束时需要完成一些资源释放工作,那么正常情况下自然是没有什么问题,但是当一个异常抛出时,释放资源的语句就不会被执行。于是BjarneStroustrup就想到确保能运行
yapian8
·
2015-04-10 16:00
Effective C++学习笔记之对
RAII
思想的思考
在阅读 EffectiveC++时,对
RAII
开始不理解,现总结如下:
RAII
是Resourceacquisitionisinitialization的缩写形式,即“资源获取就是初始化”,是C++
Jackery_Shh
·
2015-04-09 11:00
C++
编程语言
内存管理
STL
effective
boost
Linux组件封装(四)使用
RAII
技术实现MutexLock自动化解锁
我们不止一次写过这种代码:{ mutex_.lock(); //XXX if(....) return; //XXX mutex_.unlock(); }显然,这段代码中我们忘记了解锁。那么如何防止这种情况,我们采用和智能指针相同的策略,把加锁和解锁的过程封装在一个对象中。实现“对象生命期”等于“加锁周期”。代码如下:classMutexLockGuard:NonCopyable
inevermore
·
2015-03-19 00:00
[置顶] 从零开始学C++之boost库(一):详解 boost 库智能指针(scoped_ptr
、shared_ptr
、weak_ptr
源码分析)
转:http://blog.csdn.net/jnu_simba/article/details/9569593一、boost智能指针智能指针是利用
RAII
(ResourceAcquisitionIsInitialization
u012599545
·
2015-03-05 09:00
C++之
RAII
技术解析
1.什么是
RAII
技术?我们在C++中经常使用new申请了内存空间,但是却也经常忘记delete回收申请的空间,容易造成内存溢出,于是
RAII
技术就诞生了,来解决这样的问题。
doc_sgl
·
2015-01-22 22:18
C/C++
boost学习之
RAII
机制(资源申请即初始化)
先介绍下一个专业词汇:
RAII
(ResourceApplicationImmediatelyInitialize)资源申请即初始化。这也是智能指针的基本原理,智能指针只是这个习语的其中一例。
baliguan163
·
2015-01-09 14:00
C++
boost
RAII机制
RAII
惯用法:C++资源管理的利器
RAII
是指C++语言中的一个惯用法(idiom),它是“ResourceAcquisitionIsInitialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。
美丽的小岛
·
2015-01-04 22:00
C++
内存分配器<转>
关于内存管理的话题,大致有两类侧重点,一类是内存的正确使用,例如C++中new和delete应该成对出现,用
RAII
技巧管理内存资源,auto_ptr等方面,很多C/C++书籍中都使用技巧的介绍。
美丽的小岛
·
2015-01-04 22:00
内存分配
Effective C++学习笔记之对
RAII
思想的思考
在阅读 EffectiveC++时,对
RAII
开始不理解,现总结如下:
RAII
是Resourceacquisitionisinitialization的缩写形式,即“资源获取就是初始化”,是C++
gggg_ggg
·
2014-12-29 16:00
C++
编程语言
内存管理
STL
effective
boost
Resource Acquisition Is Initialization(
RAII
Idiom)
原文链接:http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Resource_Acquisition_Is_InitializationIntentToguaranteereleaseofresource(s)attheendofascopeToprovidebasicexceptionsafetyguaranteeAlsoKnownAs Execu
许三观
·
2014-11-27 22:00
C++
mutex
RAII
Idiom
RAII
惯用法:C++资源管理的利器
RAII
惯用法:C++资源管理的利器
RAII
是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。
xie1xiao1jun
·
2014-11-24 15:00
RAII
C++资源管理的利器
C++ 异常
C++处理异常技巧-try,catch,throw,finally——排版太乱,凑合参考一下~异常安全,
RAII
与C++1
人不知
·
2014-11-06 00:00
C++
exception
异常
throw
《C++ concurrency in action》第二章笔记
RAII
资源获取在初始化的时候。此方法保证在当前的函数内,如果函数意外的终止(比如抛出异常),而那些占用的资源可以随着对象的析构函数随之释放出来。
u013022222
·
2014-10-25 15:00
RAII
惯用法:C++资源管理的利器
RAII
是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写。中文可将其翻译为“资源获取就是初始化”。
borey
·
2014-10-09 17:00
资源管理
RAII
上一页
9
10
11
12
13
14
15
16
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他