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++智能指针
98std::auto_ptrC++11unique_ptrC++11shared_ptrshared_ptr循环引用问题C++11weak_ptr智能指针自定义删除器C++11和boost中智能指针的关系
RAII
爱生活,爱代码
·
2022-06-05 12:55
C++
c++
开发语言
浅谈C++11中的几种锁
自旋锁(不推荐使用)递归锁(recursive_mutex)互斥锁(mutex)可以避免多个线程在某一时刻同时操作一个共享资源,标准C++库提供了std::unique_lock类模板,实现了互斥锁的
RAII
·
2022-05-27 12:17
C++单例模式双重锁漏洞:内存读写的乱序执行(编译器问题)
说明首先解释为什么会出现这个问题:在懒汉模式下存在多线程不安全的问题(饿汉模式是线程安全的),为了解决这个问题,首先采用的是利用C++中lock_guard类,这个类实现原理采用
RAII
,不用手动管理unlock
·
2022-05-03 21:15
c++
面向对象编程(C++篇4)——
RAII
目录1.概述2.详论2.1.堆、栈、静态区2.2.手动管理资源的弊端2.3.间接使用2.4.自下而上的抽象3.总结4.参考1.概述在前面两篇文章《面向对象编程(C++篇2)——构造》和《面向对象编程(C++篇3)——析构》中,我们论述了C++面向对象中一个比较好的实现,在构造函数中申请动态内存,在析构函数中进行释放。通过这种方式,我们可以实现类对象如何内置数据类型对象一样,自动实现对象的生命周期管
charlee44
·
2022-03-27 21:00
C++智能指针
智能指针
RAII
智能指针①auto_ptr②unique_ptr③share_ptr循环引用④weak_ptr定制删除器RAIIRAII(ResourceAcquisitionIsInitialization
TZC⑥
·
2022-03-15 08:19
C++
c++
开发语言
visualstudio
Effective C++ Chapter3-资源管理
RAII
“资源获得时机便是初始化时机”“ResourceAcquisitionIsInitializaton”例如可以降资源仿如智能指针auto_ptr或tr1::shared_ptrs
寒冰豌豆
·
2022-02-19 05:13
智能指针
智能指针是利用
RAII
(资源获取即初始化)技术对普通指针进行封装,使智能指针实质是一个对象,行为表现的像一个指针。常用的智能指针:1、shared_ptr:基于引用计数的智能指针。
小松qxs
·
2022-02-17 13:08
RAII
技术
解决这个问题也很简单,使用c++中常见的
RAII
技术,即获取资源即初始化(ResourceAcquisitionIsInitialization)技术,这是c++中管理资源的常用方式。
lsh_5a9c
·
2022-02-13 00:43
<<现代C++实战30讲>>打卡学习笔记—基础篇
打卡Day1:堆、栈、
RAII
:C++里该如何管理资源?
IIGEOywq
·
2022-02-12 07:06
C++内存管理介绍
目录1smart_ptr概述1.1
RAII
进制1.2智能指针1.3scoped_ptr1.4scoped_array1.6shared_array1.7weak_ptr弱指针2总结前言;C++继承了C语言的指针
·
2022-01-06 10:02
C++初级线程管理
目录1线程启动1.1线程函数无参数无返回值1.2线程函数有参数无返回值1.3调用可调用的类型构造2等待线程2.1join等待2.2异常场景的join等待2.2.1通过异常捕获2.2.2使用
RAII
方式进行线程等待
·
2021-12-24 13:06
多线程服务器编程[2]-线程同步精要
等非不得已使用底层同步原语时,只使用非递归的互斥器和条件变量,慎用读写锁,不要使用信号量除了使用atomic整数外,不自己编写lock-free代码,也不要使用内核级同步原语互斥器(mutex)使用原则使用
RAII
·
2021-11-23 11:31
C++内存管理详细解析
allocator(per-classallocator)二、多线程内存分配器1、malloc/free2、brk和mmap三、补充知识1、内存泄漏2、malloc/free和new/delete的比较3、
RAII
·
2021-11-20 15:05
一文掌握 C++ 智能指针的使用方法
目录一、
RAII
与引用计数二、std::shared_ptr三、std::unique_ptr四、std::weak_ptr五、总结一、
RAII
与引用计数了解Objective-C/Swift的程序员应该知道引用计数的概念
·
2021-09-10 18:03
C++—线程同步
C++标准库提供了如下线程同步机制:互斥量(支持超时加锁、递归加锁)读写锁(共享互斥量,也支持超时加锁)互斥量包装器(基于
RAII
的思想)条件变量信号量(二元信号量、计数信号量)栅栏(支持重用)调用一次
·
2021-09-04 01:41
c++线程同步锁
C++11 智能指针的具体使用
目录智能指针的原理
RAII
智能指针的原理auto_ptr1.auto_ptr的使用及问题unique_ptrshared_ptrshared_ptr的循环引用智能指针的原理RAIIRAII(ResourceAcquisitionIsInitialization
·
2021-08-24 12:45
std::unique_lock与std::lock_guard
std::lock_guardstd::lock_guard是
RAII
模板类的简单实现,功能简单。
宋大壮
·
2021-06-27 00:29
lock_guard和unique_lock
lock_guard和unique_lock都是
RAII
机制下的锁,即依靠对象的创建和销毁也就是其生命周期来自动实现一些逻辑,而这两个对象就是在创建时自动加锁,在销毁时自动解锁。
lsh_5a9c
·
2021-06-04 10:37
C++ 学习笔记8--移动语义和智能指针
文章目录移动语义1.几个基本概念的理解2.移动构造函数3.移动赋值函数4.std::move函数5.面试题,关于实现String资源管理和智能指针一、C语言中的问题二、C++的解决办法(
RAII
技术)三
谢白羽
·
2021-05-25 22:07
c++
指针
c++
内存管理
C++
RAII
典型应用之lock_guard和unique_lock模板
文章目录1前言2lock_guard3lock_guard使用4unique_lock5相关文章1前言 常用的线程间同步/通信(IPC)方式有锁(互斥锁、读写锁、自旋锁)、屏障、条件变量、信号量、消息队列。其中锁一种最常用的一种IPC,用于对多个线程共享的资源进行保护,达到线程互斥访问资源的目的。以互斥锁为例,其中最常见的异常而且是致命的问题是——“死锁”。 死锁(DeadLock)是指两个或
Acuity.
·
2021-05-18 20:42
C/C++编程
代码质量
c++
lock_guard
unique_lock
巧妙使用
RAII
中的ScopeExit
RAII
的应用见如下代码:std::mutexmutex;voidfunc
·
2021-05-06 19:00
总结了24个C++的大坑,你能躲过几个
分享一个我在知乎上看见的回答:C++≈Cwithclasses,CwithSTLC:面向机器编程C++:面向编译器编程C++有个很重要的特性叫
RAII
,个人认为可以多多使用,相当方便,关于
RAII
巧妙使用可以看我这两篇文章
·
2021-05-06 19:58
条款13 以类管理对象
为防止资源泄漏,请使用
RAII
(resourceacquisitionisinitialization)对象,它们在构造函数中获得资源并在析构函数中释放资源。
Songger
·
2021-04-24 08:54
c++ 智能指针基础详解
它对于资源获取即初始化(
RAII
,ResourceAcquisitionIsInitialization)编程理念至关重要。该理念的目的是保证对象初始化的时
·
2021-02-18 20:20
C++ 中的智能指针-基础
它对于_资源获取即初始化(
RAII
,ResourceAcquisitionIsInitialization)_编程理念至关重要。该理念的目的是保证对象初始化
·
2021-02-18 18:38
c++
《More Effective C++》总结笔记(二)——异常
简单来说就是,当有资源可能在函数抛异常时而无法释放,这时可以将资源封装到对象内(
RAII
),利用对象的析构函数来自动释放资源,这样即使有exceptions发生,也不会有资源泄露。
·
2021-02-15 13:18
c++异常处理
《More Effective C++》总结笔记(二)——异常
简单来说就是,当有资源可能在函数抛异常时而无法释放,这时可以将资源封装到对象内(
RAII
),利用对象的析构函数来自动释放资源,这样即使有exceptions发生,也不会有资源泄露。
·
2021-02-05 21:15
c++异常处理
使用C++11实现一个半同步半异步的线程池
SyncQueue端使用条件变量和互斥体支持同步,避免同时读写list4、ThreadPool端使用atomic_bool支持多线程下的bool变量的原子性,类似跨线程的唯一标识,标识线程是否处于运行状态5、使用
RAII
FredricZhu
·
2021-01-21 11:59
智能指针
智能指针运用了一种叫做
RAII
的技术,
-小淮要努力
·
2021-01-03 22:29
智能指针
c++
C++智能指针
RAII
:C++中一个对象出了其作用域就会被自动析构,只要在构造函数时候申请空间,析构函数时候释放空间,围绕着构造和析构进行操作。
365_9163
·
2020-10-13 10:41
通过例子来学习 Go 和 Rust ---- RwLock 读写锁
rust里和Mutex类似,使用
RAII
(ResourceAcquisitionIsInitialization)来保证在值被Drop的时候自动解锁。而go里依然是需要手动解锁。
Ljzn
·
2020-10-11 16:21
golang
rust
become-expert-in-cpp
notes-on-effective-cpp----------------------item13以对象管理资源(
RAII
)1)[Lambda+tr1::function]VS[auto_ptr]item32
KUANG13547029
·
2020-09-17 08:11
c/c++
数据库
数据结构与算法
Effective C++学习笔记(三)
条款13用对象来管理资源为防止资源泄露,使用资源管理对象来构造资源和析构资源,最好在获取资源的同时进行初始化(
RAII
)最常见的资源管理对象为智能指针,std::auto_ptr与std::shared_ptr
_Maple_H
·
2020-09-16 22:43
C++学习
学习 muduo。
1、
RAII
手法。
hqwuu
·
2020-09-16 21:02
muduo
C/C++
C++中的
RAII
介绍
摘要
RAII
技术被认为是C++中管理资源的最佳方法,进一步引申,使用
RAII
技术也可以实现安全、简洁的状态管理,编写出优雅的异常安全的代码。
telnetipc
·
2020-09-16 10:00
C++
计数智能指针要点(shared_ptr)
常用的智能指针有scope_ptr(c++11unique_ptr),利用
RAII
特性,保证资源在作用域失效的时候被释放,也保证异常抛出时栈回滚能够释放资源;引用计数智能指针(shared_
cd2108006026
·
2020-09-15 21:40
boost-asio
libevent之 C++
RAII
封装 定时器
前言:这两天读Bitcoin代码,不禁感慨作者的强大,代码的精妙不是我这码农虔诚膜拜便能读懂的,更远远谈不上企及。于是默默埋头,回想本屌,工作七年还是个默默无闻不及格的码农,黯然内流~~C/C++那种非人性化的吐槽:相信很多童鞋跟本农一样,吃过饭之后就是不想洗碗收拾桌子。那太麻烦了,像我们这样怕麻烦的,吃饭首选快餐。以致于错过了自己做饭的乐趣。C/C++就是这样麻烦的发明,效率高不说,可就是要擦屁
feekia
·
2020-09-15 11:03
libevent
C++
linux
多线程总结-2020-09-07
头文件std::mutexlock()、unlock()需要在离开函数的地方解锁std::lock_guard()实现互斥元
RAII
不要把受保护的数据引用或指针传递到锁的范围之外。
阳光下的我们2019
·
2020-09-15 11:34
学习C++之路
C++锁的管理-- std::lock_guard和std::unique_lock
前言锁管理遵循
RAII
习语来处理资源。锁管理器在构造函数中自动绑定它的互斥体,并在析构函数中释放它。这大大减少了死锁的风险,因为运行时会处理互斥体。。
lesliefish
·
2020-09-14 08:02
Moderns
C++
【C++面试知识】智能指针
理解智能指针从三个方面:1.智能指针使用一种叫
RAII
(资源获取即初始化)的技术对普通指针进行封装,使得智能指针实质是个对象,表现得是个指针。
做人事
·
2020-09-12 15:43
C++11资源管理新方法ON_SCOPE_EXIT
接着,BjarneStroustrup在TC++PL里面定义了
RAII
(ResourceAcquisitionisInitialization)范式(即:对象构造的时候其所需的资源便应该在构造函数中初始化
q5339621
·
2020-09-12 09:36
C++
C++
内存管理
永久改变你写异常安全代码的方式(神奇的Loki::ScopeGuard)
注2:Loki::ScopeGuard不仅对通常意义的异常有用,对于所有可以使用
RAII
的地方均有用。包括new出来的内存空间的管理,FI
purewinter
·
2020-09-12 09:05
C/C++
每天进步一点点——C++11中使用lambda表达式实现一个简单的ScopeGuard
转载请说明出处:http://blog.csdn.net/cywosp/article/details/295852271.
RAII
在进入本文主要内容之前先了解一下C++中常用的
RAII
(Resourceacquisitionisinitialization
cywosp
·
2020-09-12 08:59
C/C++
C++11中实现类似golang的defer
defer的这个特性正好契合C++的
RAII
。那我们能不能利用
RAII
实现defer的功能呢。思路
RAII
我们知道对象在作用域结束自动析构,那我们在使用de
xcyle
·
2020-09-11 19:36
C++
c++
golang
defer
RAII
effective c++条款14
1.复制
RAII
对象必须一并复制它所管理的资源,所以资源的copying行为决定
RAII
对象的copying行为2.普遍而常见的的RAIIclasscopying行为是:抑制copying,施行引用计数法第
baidu_25539425
·
2020-09-11 19:58
Effective
c++读书笔记
effective c++条款13
一旦用了它,将来必须还给系统c++最常使用的资源就是动态分配内存,但内存只是你必须管理的众多资源之一,其他常见的资源还包括文件描述器,互锁器,图形界面中的画笔,画刷,字型,数据库连接,网络socket等等
RAII
baidu_25539425
·
2020-09-11 19:58
Effective
c++读书笔记
c++
STL中的内存分配器
关于内存管理的话题,大致有两类侧重点,一类是内存的正确使用,例如C++中new和delete应该成对出现,用
RAII
技巧管理内存资源,auto_ptr等方面,很多C/C++书籍中都使用技巧的介绍。
jiangyi711
·
2020-09-10 14:38
c/c++
list
算法
vector
linux内核
byte
raii
shared_ptr共享智能指针(实现以及缺陷)
RAII
的思想、重载*->、引用计数解决浅拷贝问题。采用mutex来保证线程安全,mutex只能保证对引用计数的安全性,对于shared_ptr管理的资源由用户去保证。
XHumble
·
2020-08-25 15:48
面试杂记
RAII
全称是ResourceAcquisitionIsInitialization,即“资源获取即初始化”,其核心是把资源和对象的生命周期绑定:对象创建获取资源,对象销毁释放资源。
HamRadioDXerGLY
·
2020-08-25 04:04
校招
智能指针的实现
智能指针的使用及原理:
RAII
:
RAII
是一种利
Nemo丶
·
2020-08-25 01:54
C++
上一页
3
4
5
6
7
8
9
10
下一页
按字母分类:
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
其他