最新要闻
- 今日热门!叶一茜当众骂森碟“心机”,她就这么恨女儿?
- 沙尘跨过长江一路向南!直击江皖沪多地沙尘现场
- 要闻:GT Neo5 SE 1TB版只卖2599 真我喊话:现货才是硬道理
- RTX 4070今晚发布 结果遭AMD背刺了:显存越大越好、4K至少16GB
- 全球头条:史上最挤”五一档来了!王一博《长空之王》等17部影片扎堆上映
- 网传明年中旬上海绿牌蓝牌要合并?官方回应来了
- 当前速读:梯田为“布” 光影为“沙” 点亮乡村“夜经济”
- 环球最资讯丨不怕有味儿 比毛巾划算:云南白药洗脸巾0.06元/张狂促
- 天天热点评!“回锅沙”要来了!部分地方要注意
- 全球短讯!果粉最期待的大屏MacBook Air来了!苹果史上第一款
- 世界视点!首款骁龙8+平板中兴Axon Pad来了:12.1寸超大屏
- 新动态:4月14日State of Play:将展示超20分钟《最终幻想16》
- 身体很诚实!马斯克加入AIGC大战:抢购1万张GPU、挖Deepmind墙角
- 当前视讯!曾被誉为最靠谱!又一家造车新势力发不出工资了
- 有病了还能买哪种保险?隐瞒健康告知带病投保会怎么样?
- 理想汽车全系车型电器真实功率再公开:空调果然是耗电大户!
广告
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
当前速读:智能指针基本原理,简单实现,常见问题
(资料图片)
基本概念
- 智能指针是一个模板;
- shared_ptr允许多个指针指向同一个对象,unique指针则独占指向的对象;
基本使用
shared_ptr
ptr; //默认初始化保存着一个空指针 shared_ptr
ptr = make_shared (42); 拷贝与赋值,会有一个引用计数
引用计数增加的情况:
- 拷贝初始化:
shared_ptr
q(p); - 参数传递及函数返回值:
void function(shared_ptr
因为这也是一种拷贝ptr);
- 拷贝初始化:
基本实现
两个基本成员ptr与ref_count,即指针与引用计数,关于引用计数是一个数值还是一个稍复杂的类,要看库的具体实现,此处为了简便使用一个数值来统计引用计数;
ptr ref_count 需实现函数:
- 显式初始化构造函数
- 拷贝构造函数
- 析构函数
#include#include#includeusing namespace std;templateclass Shared_Ptr{public:Shared_Ptr(T* ptr = nullptr) // 默认构造函数:_pPtr(ptr), _pRefCount(new int(1)), _pMutex(new mutex){}~Shared_Ptr() // 定制析构函数{Release();}Shared_Ptr(const Shared_Ptr& sp) // 拷贝构造函数,增加引用计数:_pPtr(sp._pPtr), _pRefCount(sp._pRefCount), _pMutex(sp._pMutex){AddRefCount();}Shared_Ptr& operator=(const Shared_Ptr& sp) // 重载赋值运算符{//if (this != &sp)if (_pPtr != sp._pPtr){// 释放管理的旧资源Release();// 共享管理新对象的资源,并增加引用计数_pPtr = sp._pPtr;_pRefCount = sp._pRefCount;_pMutex = sp._pMutex;AddRefCount();}return *this;}T& operator*(){return *_pPtr;}T* operator->(){return _pPtr;}int UseCount() { return *_pRefCount; }T* Get() { return _pPtr; }void AddRefCount(){_pMutex->lock();++(*_pRefCount);_pMutex->unlock();}private:void Release(){bool deleteflag = false;_pMutex->lock();if (--(*_pRefCount) == 0){delete _pRefCount;delete _pPtr;deleteflag = true;}_pMutex->unlock();if (deleteflag == true)delete _pMutex;}private:int *_pRefCount; // 计数器T* _pPtr; // 指针成员mutex* _pMutex; };
线程安全问题
- 引用计数是多个智能指针对象共享,若智能指针处于不同的线程内,则线程并行操作有可能引起技术混乱或指针空悬问题;
- 计数混乱:为了解决计数混乱问题,可以加互斥锁在计数变量上,这样每次只会有一个线程执行变量的加减操作;即在实现中引用计数的操作是线程安全的。
- 指针空悬:对指针的操作不是线程安全的。如对于多线程中的两个智能指针a,b,若在某线程1中想要执行赋值操作a=b,分两步执行,1)先执行指针的复制,2)再执行引用计数的复制并加1,这两步操作不是原子的. 如果执行完第一步后,转到了线程2执行
b = (new ClassA)
,即对于智能指针b来说,他被赋予了新值,原计数减一,由于线程一中的增加引用计数操作还未来得及实施,所以现在引用计数变成了0,原指针被释放。如果此时再回到线程1,a的引用计数指针将指向新的b的引用计数,这里就产生了错误,并且a的指针空悬,产生安全问题。 - 具体图示可见link:https://blog.csdn.net/liang19890820/article/details/120465794
循环引用
可以假设一个双向链表Node的结构体,其中的next与prev都设置为智能指针,然后创建两个智能指针node1, ndoe2
指向两个新new的Node,那么这时候两者的引用计数都是1.此时再分别设置node1->next = node2; node2->next = node1
,两者的引用计数都变为2,若此时程序结束,则两node引用值都变为1,无法析构,。想要node1析构得先析构node2,反之亦然,这就导致了循环。
- 解决方法:shared_ptr改为weak_ptr,弱指针不会增加引用计数,就不会循环引用了
关键词:
-
JMeter-BeanShell预处理程序和BeanShell后置处理程序的应用
一、什么是BeanShell?BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解...
来源: 看!前端新人如何用ChatGPT开发APP
JMeter-BeanShell预处理程序和BeanShell后置处理程序的应用
当前速读:智能指针基本原理,简单实现,常见问题
今日热门!叶一茜当众骂森碟“心机”,她就这么恨女儿?
【新华500】新华500指数(989001)12日窄幅震荡跌0.10%
沙尘跨过长江一路向南!直击江皖沪多地沙尘现场
要闻:GT Neo5 SE 1TB版只卖2599 真我喊话:现货才是硬道理
RTX 4070今晚发布 结果遭AMD背刺了:显存越大越好、4K至少16GB
全球头条:史上最挤”五一档来了!王一博《长空之王》等17部影片扎堆上映
网传明年中旬上海绿牌蓝牌要合并?官方回应来了
当前速读:梯田为“布” 光影为“沙” 点亮乡村“夜经济”
世界热消息:C#使用Elasticsearch入门
plist文件格式转换器
观速讯丨T-SQL基础教程Day1
天天微头条丨云图说|云数据库GaussDB如何做到卓越性能
环球最资讯丨不怕有味儿 比毛巾划算:云南白药洗脸巾0.06元/张狂促
天天热点评!“回锅沙”要来了!部分地方要注意
全球短讯!果粉最期待的大屏MacBook Air来了!苹果史上第一款
世界视点!首款骁龙8+平板中兴Axon Pad来了:12.1寸超大屏
新动态:4月14日State of Play:将展示超20分钟《最终幻想16》
全球看热讯:电商平台商品详情接口的应用场景
热点!二级指针创建二叉树节点与一级指针创建二叉树节点
身体很诚实!马斯克加入AIGC大战:抢购1万张GPU、挖Deepmind墙角
当前视讯!曾被誉为最靠谱!又一家造车新势力发不出工资了
全球微速讯:火山引擎 DataLeap 推出全链路智能监控报警平台
有病了还能买哪种保险?隐瞒健康告知带病投保会怎么样?
理想汽车全系车型电器真实功率再公开:空调果然是耗电大户!
小米13 Ultra样张首亮相:虚化堪比单反 夜拍效果惊人
《龙之家族》新季开拍
罕见超级激励!东方甄选奖励154员工8.83亿港元
【世界独家】00后网红骑摩托车遇车祸身亡 劝不住:网友感慨年轻 有必要全面禁摩?
易基因:METTL3介导的m6A甲基化谱调控肌肉干细胞成肌细胞状态转换|发育分化
全球快资讯丨中骏集团称已备好即将到期美元债兑付资金 拟发行第二支中债增全额担保中票
3月物价数据透露哪些经济变化?促消费政策获得较大空间
天天报道:iPhone 15 Pro颠覆式设计取消了!郭明錤:苹果因技术问题放弃固态按键
丫丫将通过温控卡车运至机场:即将飞赴上海
又有新品牌了!长安启源A07亮相:颜值超高碾压一众国产
报道:推特突然“死亡”!马斯克正式启动打造美版微信
走过别错过!红蜻蜓126款休闲鞋/运动鞋/皮鞋清仓:79元绝世好价
h3c路由器如何恢复出厂设置?h3c路由器配置命令大全
小米手机卡顿反应慢是什么原因?小米手机卡顿反应慢怎么解决?
ssd极速固态硬盘怎么样?ssd极速固态硬盘排名前十
iphone4的显示屏分辨率是多少?iphone4版本太低怎么下载软件?
AMD速龙QL64CPU性能怎么样?amd速龙系列cpu天梯图
Zabbix“专家坐诊”第187期问答汇总
每日报道:数据开发提效有秘诀!离线开发BatchWorks 六大典型场景拆解
全球观天下!公司入职一个阿里大佬,把 Spring Boot 系统启动时间从 7 分钟降到了 40 秒!
HTML中的pre-load 和 pre-fetch
全球最资讯丨京准GPS北斗卫星网络授时服务器助力高速智慧交通
环球观热点:三月三拜轩辕 | 全球华人同根同源——强月新
世界今亮点!雷军:小米13 Ultra将摆脱手机成片的“塑料味”
头条:淄博老板娘为赶高铁小伙1V1烤串!完美诠释“好客山东”
天天观察:苹果智能戒指专利首曝:VR场景交互只需动下手指
当前速读:1TB仅529元!致态TiPlus 7100固态硬盘新史低 选它还是选三星?
全球视讯!机构一致唱多金价 贵金属板块表现亮眼
世界热议:全网最详细中英文ChatGPT-GPT-4示例文档-场景问题智能生成从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/
世界速讯:记一次kvm虚机mysql数据库磁盘扩容操作步骤及其问题小坑
每日视点!第八批国家组织药品集采中选结果公布
天天新资讯:公开叫停ChatGPT的马斯克暗渡陈仓玩得6 网友:他是懂中国兵法的
越野也不费油!坦克300 PHEV实车亮相:动力大增
实测RTX 4090平均20帧!《赛博朋克2077》成新一代“显卡危机”
每公里造价2.1亿!中国最贵高速公路预计2025年建成
全球观热点:被国产车打怕韩系车拼了 起亚新SUV赛图斯预售:仅9.19万元起
【独家】昆明部分店外增设“一米线”:商户可在线内摆摊
环球今日报丨中国国债期货收益指数今日发布
今日精选:比五菱MINI EV还便宜?奇瑞“棒棒糖”亮相:油门到底时速能到100km
重点聚焦!小米成中国市场周销量安卓第一!高端旗舰小米13 Ultra本月发布
焦点速讯:你达标了吗?国内人均存款增加1.2万:人民币存款继续增长
天天视点!初代跑男重聚引热议:邓超李晨王宝强等合照引回忆杀
32岁婆孙恋爆红网络!日本61岁奶奶交往29岁男子 网友感叹相貌绝了
新动态:让你脑洞大开的MySQL优化技巧
多地超前谋划专项债项目 “早发快用”加力稳投资
微速讯:女生在冬季剪什么发型好看呢?
天天热头条丨行业首款卫星通信5G手机!中兴Axon 50 Ultra吴京代言图公布:背部外观揭晓
【独家】韩国4月前10天芯片出口下降近40%:1TB SSD三星降599没人买 国产崛起
环球热点评!中老铁路国际旅客列车明日开通:万象到昆明南二等座470元
全球信息:大疆8K航拍无人机明天发 悟3真机亮相:个头感受下
天天观察:97版三兄弟代言!《天龙八部2:飞龙战天》4月14日公测:完美世界发行
每日看点!女子没开会员追剧需看50多分钟广告:遇到了BUG是个例
环球热议:酒也分贵贱? 专家:洋酒就没文化含量 中国酒文化才叫源远流
世界微动态丨图赫尔:0比3输球的结果很苦涩,但今天我爱上了我的球队
环球观点:CSS杂谈——flex布局里面的auto到底多长
光栅化算法-中点画圆算法
Win无敌二十多年后 微软又抓到了AI风口:印度裔CEO立大功
环球关注:“小号Mate 50 Pro”!华为畅享60X来了:骁龙680、又一技术行业首发
全球观点:这株极品牡丹居然有“带刀侍卫”!24小时守护
当前关注:地表能效第一!锐龙9 7950X3D深入测试:i9-13900K无言以对
焦点讯息:SSD散热器疯了:比显卡都要高!还有暴力风扇
最新快讯!2023年北京市积分落户申报时间安排一览表
世界资讯:微信小程序:接手项目,修bug
焦点简讯:选择大城市逐梦还是小城市安稳
世界快消息!电动自行车电池爆炸由谁赔偿?律师:销售商也有责任
每日热闻!会“跳舞”的汽车你见过吗?比亚迪云辇系统再次引领行业
全球热议:韩国26岁女星被发现在家中去世:新剧拍摄中 死因未透露
Python中struct 模块的使用教程
焦点观察:once do, do it well
全球资讯:华为小米vivo一加重磅新机汇总!接下来10天有的看了
世界球精选!终于不缺货了!小米13 Ultra订单增加50%:不愁买不到
视讯!这才是青春_山东聊城市中考满分作文 中考满分作文:静待一场幸
SpringApplication详解