当前位置: 首页 > news >正文

矿大师德建设网站wordpress表单微信

矿大师德建设网站,wordpress表单微信,模板型网站,app网站建设 - 百度RALL是Resource acquisition is initialization的缩写#xff0c;意思是“资源获取即初始化”#xff0c;其核心思想是利用C对象生命周期的概念来控制程序的资源。它的技术原理很简单#xff0c;如果希望对某个重要资源进行跟踪#xff0c;那么创建一个对象#xff0c;并将…RALL是Resource acquisition is initialization的缩写意思是“资源获取即初始化”其核心思想是利用C对象生命周期的概念来控制程序的资源。它的技术原理很简单如果希望对某个重要资源进行跟踪那么创建一个对象并将资源的生命周期和对象的生命周期相关联。这样一来C自带的对象管理设施就可以来管理资源了。RALL的简单应用先看一个简单的例子#include iostream #include memory int main() {for (int i 1; i 10000000; i){int* ptr new int[3];ptr[0] 1;ptr[1] 2;ptr[2] 3;//delete ptr; }return 0; }这里我们打开任务管理器发现这么小的程序竟然占了500mb内存。原因就是因为没有释放内存当我们把注释的代码打开后就ok。所以这里也看到了忘记释放资源的恐怖之处我们只需要进行一个封装#include iostream #include memory templatetypename T class auto_ptr { public:auto_ptr(T* t) :_t(t) {};~auto_ptr(){delete _t;};T* getPtr(){return _t;} private:T* _t; }; ; int main() {for (int i 1; i 10000000; i){auto ptr auto_ptrint(new int[3]);int* p ptr.getPtr();p[0] 1;p[1] 2;p[2] 3; }return 0; }现在就可以实现自动释放资源了。这里我们模拟一个简单的智能指针类原理就是将裸指针进行了一次面向对象的封装利用栈上的对象在出作用域时自动调用析构函数的特点保证了资源的释放解决了内存泄漏问题。#includeiostream using namespace std; templateclass T class SmartPtr { private:T* _ptr; public:SmartPtr(T* ptr nullptr) :_ptr(ptr) {}T operator*() { return *_ptr; }T* operator-() { return _ptr; }T getvalue(){return *_ptr;}~SmartPtr(){if (_ptr) { delete _ptr; }} };int main() {SmartPtrint ptr(new int(10));cout ptr.getvalue() endl;*ptr.operator-() 20;cout ptr.getvalue() endl;return 0; }之前我们提到互斥锁mutex的特点一段时间内某个锁资源只能被一个运算单元所占用。所以也就要我们在用完锁后记得解锁不然会产生死锁现象。#includeiostream #includethread #includemutex void func(string name) {mutex mtx;mtx.lock();//Mylockmutex lock(mtx); } int main() {thread t1(func, 窗口A);thread t2(func, 窗口B);thread t3(func, 窗口C);t1.join();t2.join();t3.join();return 0; }我们发现程序崩溃是死锁原因。忘记释放资源有时候往往不是这位程序员技术高低的问题而是我们真的不知道资源到底啥时候释放这时候我们可以对普通的互斥锁进行一次面向对象的封装。#includeiostream using namespace std; #includethread #includemutex templateclass lock class Mylock { public:Mylock(lock lock):_lock(lock){_lock.lock();}~Mylock(){_lock.unlock();} private:lock _lock; }; void func(string name) {mutex mtx;Mylockmutex lock(mtx); } int main() {thread t1(func, 窗口A);thread t2(func, 窗口B);thread t3(func, 窗口C);t1.join();t2.join();t3.join();return 0; }这时候就不会有问题了。总结RAII的本质内容是用对象代表资源把管理资源的任务转化为管理对象的任务将资源的获取和释放与对象的构造和析构对应起来从而确保在对象的生存期内资源始终有效对象销毁时资源必被释放。换句话说拥有对象就等于拥有资源对象存在则资源必定存在。
http://www.w-s-a.com/news/444511/

相关文章:

  • 南宁做网站费用iis编辑网站绑定
  • 家用宽带做网站服务器建网站费用明细
  • 电商 网站 降低 跳出率 措施 效果书画院网站模板
  • 兰州移动官网网站建设上海工商网上公示系统
  • 在招聘网站里做电话销售免费空间可以上传网站吗
  • 梅州建站怎么做中国建设银行官网下载
  • 网站静态化设计广州网站备案方案
  • 西安网络技术有限公司网站扬中网站建设方案
  • 青海省教育厅门户网站wordpress core
  • idc科技公司网站模板蜜雪冰城网络营销案例分析
  • 微信与网站对接手机软件怎么做
  • 户县网站建设珠海专业制作网站
  • 麦当劳的网站优化建议猎头公司工作怎么样
  • 合肥地区网站制作网页浏览器打不开
  • 做网站的不给ftp网站如何做触屏滑动
  • wordpress statraq重庆百度优化
  • 企业网站官网英文WordPress站点切换为中文
  • 服装公司网站定位一点号自媒体平台
  • 密云微网站建设汽车之家手机官网首页
  • 多语言外贸网站制作苏州建设网站微信公众号
  • 用wordpress建站学什么百度给企业做网站吗
  • 福建城乡建设网站做数码测评的网站
  • 东海县建设局网站wordpress 好用的主题
  • 网站图片设计制作制作一个门户网站需要多少钱
  • 虚拟币交易网站源码自己给网站做支付接口
  • 免费的seo网站在线 crm
  • 绍兴市高速公路建设指挥部网站网站主页和子页风格如何统一
  • 获取网站状态网站租金可以做办公费吗
  • 网站开发执行什么标准号wordpress主题 表白
  • 杭州网站推广与优化凡科网是免费的吗