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
C++11 JNI开发中
RAII
的应用(一)--制作基础工具
背景最近项目C++底层代码写完了,开始做java与底层代码的接口部分,就涉及到JNI编程,我这是第一次写JNI代码,看了很多资料,得到一个印象:JNI开发本身不复杂,但如果操作不慎,很容易造成内存泄露参见《jni内存泄露》,而且最容易被忽视的就是本地引用(LocalReference)造成的内存泄露。按照oracle官方对的文档《JavaNativeInterfaceSpecificationCo
10km
·
2015-12-02 14:02
c/c++/c++11
ACE 智能指针
ACE_Auto_Ptr ACE_Auto_Ptr更像
RAII
的应用一样。资源初始化即获取及其释放的C+
ww506772362
·
2015-11-20 13:00
ACE
C++11实现模板化(通用化)
RAII
机制
什么是
RAII
?
RAII
(ResourceAcquisitionIsInitialization),也称直译为“资源获取就是初始化”,是C++语言的一种管理资源、避免泄漏的机制。
10km
·
2015-11-15 10:58
利用C++
RAII
技术自动回收堆内存
在C++的编程过程中,我们经常需要申请一块动态内存,然后当用完以后将其释放。通常而言,我们的代码是这样的: 1: void func() 2: { 3: //allocate a dynamic memory 4: int *ptr = new int; 5: 6: //use ptr 7: 8: //release allocated memory 9: delete pt
·
2015-11-13 21:52
C++
Effective C++(14) 在资源管理类中小心copying行为
在详述这一章的主题之前,先回忆一下上一节所提到的一个名词——
RAII
(Resource Acquisition Is Initializat
·
2015-11-13 18:00
effective
c++异常处理
C++资源的释放可以通过
RAII
实现。
RAII
,也称为“资源获取就是初始化”,是c++等编程语言常用的管理资源、避免内存泄露的方法。它保证在任何情况下,使用对象时先构造对象,最后析构对象。
·
2015-11-13 12:41
异常处理
RAII
惯用法:C++资源管理的利器
RAII
惯用法:C++资源管理的利器
RAII
是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization
·
2015-11-13 02:20
C++
条款15:在资源管理类张提供对原始资源的访问
请牢记: 1、APIs往往要求访问原始资源,所以每一个
RAII
class应该提供一个“取得其所管理之资源”的办法。 2、对原始资源的访问可能经由显式转换或隐式转换。
·
2015-11-12 17:20
管理
条款14:在资源管理类中小心copying行为
请牢记: 1、复制
RAII
对象必须一并复制它所管理的资源,所以资源的copying行为决定
RAII
对象的copying行为。
·
2015-11-12 17:18
copy
effective C++ 读书笔记(11-28)
1:
RAII
资源获得时机便是初始化时机 典型应用: 智能指针!
·
2015-11-12 14:39
effective
以及对HANDLE的
RAII
封装
利用
RAII
的思想,将HANDLE封装为一个类,在其析构函数中进行close,是一个不错 的方法。
·
2015-11-11 10:30
Invalid
Linux组件封装(四)使用
RAII
技术实现MutexLock自动化解锁
我们不止一次写过这种代码: { mutex_.lock(); //XXX if(....) return; //XXX mutex_.unlock(); } 显然,这段代码中我们忘记了解锁。那么如何防止这种情况,我们采用和智能指针相同的策略,把加锁和解锁的过程封装在一个对象中。 实现“对象生命期”等于“加锁周期”。
·
2015-11-11 09:41
linux
Effective C++ 条款15、16 在资源管理类中提供对原始资源的访问||成对使用new 与 delete要采取相同形式
这里,有两种方法解决上述问题,我们可将
RAII
对象转换为原始资源。通过 显式转换与隐式转换。
·
2015-11-11 06:32
effective
STL的内存分配器
关于内存管理的话题,大致有两类侧重点,一类是内存的正确使用,例如C++中new和delete应该成对出现,用
RAII
技巧管理内存资源,auto_ptr等方面,很多C/C++书籍中都使用技巧的介绍。
·
2015-11-11 04:37
内存分配
由C++的异常处理联想到
RAII
在传统的C语言,我们通过检查函数的返回值以判断调用是否成功,并处理各类异常情况,在Unix环境下可以通过设置error变量发出错误消息,并通过setjmp, longjmp来跳出深层次调用。C++语言在此基础上引入了Exception机制,遇到异常的程序模块可以throw一个异常,其他方法可以通过try catch来捕捉该异常。但是相比后来的Java与C#中的
·
2015-11-11 04:07
异常处理
使用C++11新特性来实现
RAII
进行资源管理
方法一:借助auto、decltype、unique_ptr、Lambda表达式构造 sqlite3 *db = NULL; auto deleter = [](sqlite3 *pdb){sqlite3_close(pdb);} int nRet = sqlite3_open16(L"F:\\my.db",&db); std::unique_ptr<sqlit
·
2015-11-11 04:33
C++
C++ 资源管理(
RAII
)--智能指针
1. 智能指针(Smart Pointer) i. 是存储指向动态分配(堆)对象指针的类 ii. 在面对异常的时候格外有用,因为他们能够
·
2015-11-11 03:59
C++
###《More Effective C++》- 异常
author: gr #@date: 2015-05-24 #@email:
[email protected]
九、利用 destructors避免泄漏资源 所谓
RAII
·
2015-11-11 02:33
effective
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
上一页
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
其他