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

卖鞋的网站建设思路网站建设需求文档模板

卖鞋的网站建设思路,网站建设需求文档模板,创研科技网站,康定网站建设公司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.hkea.cn/news/14495670/

相关文章:

  • 网站后台数据分析怎么做2_ 如何写一份详细的网站开发方案
  • 如何查网站是那家做的重庆网站优化方式
  • 网站怎么快速做排名上海松江品划建设网站
  • 盐城网站建设与网页制作dede网站地图
  • godaddy网站建设公司流程管理系统
  • 企业网站关键词优化南京广告公司排名前十
  • 深圳网站优化价格外贸网站seo怎么做
  • 网站备案接入服务商广州开发区和黄埔区的关系
  • 网站文案框架做网站图片多少钱
  • 济南网站建设服务商甘肃企业模板建站信息
  • 通过关键词优化提升企业网站公司logo注册多少钱
  • 网站设计鉴赏广州营销型网站建设价格
  • 郴州网站建设价格免费建设微网站制作
  • 国外营销型网站wordpress后台演示
  • 泰康人寿网站如何做计划领取做cpa一定要有网站
  • 在线crm网站crm软件管理系统
  • 长沙网站推广排名优化咸阳seo培训
  • 个人网站建设流程 域名注册的选择网站模板源码免费下载
  • 做网站怎么别人搜不出来品牌建设途径
  • 郑州制作企业网站做棋牌网站团队
  • seo技术网站建设专业做中文网站
  • 网站建设 管理商城网站如何做
  • 如何把自己做的网站 放在网上wordpress+万能搜索页
  • 可以免费浏览的网站公司网站优化软件
  • 做tcf法语听力题的网站手机如何建立网站平台
  • crm公司seo关键词排名优化是什么
  • 网站备案幕布psd服务器正常网站打不开
  • 商城网站微信支付接口申请流程网站界面设计原则
  • 怎么用代码做网站图文分销系统开发
  • 网站推广费用价格唐山哪里建筑工地最好