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

做网站应该用什么配置的电脑企业网站群建设规范

做网站应该用什么配置的电脑,企业网站群建设规范,hao123主页下载安装,怎么在公众平台上添加wordpress单例模式就是在整个程序运行期都只有一个实例。在代码实现方面#xff0c;我们要限制new出多于一个对象这种情况的发生。而不是仅仅依靠无保障的约定。 目前大多数的编程语言的做法都是私有化构造函数#xff0c;对外提供一个获取实例的接口。这样做的目的使实例的创建不能在…单例模式就是在整个程序运行期都只有一个实例。在代码实现方面我们要限制new出多于一个对象这种情况的发生。而不是仅仅依靠无保障的约定。 目前大多数的编程语言的做法都是私有化构造函数对外提供一个获取实例的接口。这样做的目的使实例的创建不能在类外部完成这样我们只需要在内部保障实例只创建一次即可。我们用一个例子来说明C的单例 #include iostream using namespace std;class TestCls{private:TestCls(){} // 构造函数私有化在外部就无法通过new运算符创建新实例// 声明单例里的指针static的成员在这里只是声明它的初始化还没有完成static TestCls *m_instance;public:~TestCls(){//析构函数cout TestCls is destroying endl;}// 对外暴露一个接口获得单例static TestCls* getinstance(){if(m_instance NULL){// new出来的对象一定要用delete运算符删除对应的指针m_instance new TestCls();// 巧妙的地方static MyGC mygc;}return m_instance;}void test(){cout test endl;}// 在单例里再定义一个内部类class MyGC {public:~MyGC(){//在内部类的析构函数里delete掉单例if(TestCls::m_instance){delete TestCls::m_instance;TestCls::m_instance NULL;}}}; };// static 成员的初始化 TestCls * TestCls::m_instance NULL;int main(){//获取单例TestCls * ptr TestCls::getinstance();cout ptr endl;ptr TestCls::getinstance();cout ptr endl;return 0; }定义单例基本上来说是很简单的就是先私有化构造函数单例内部new出这个实例并对外提供获取实例的接口。在这里我想特别分享一下为什么要弄一个内部类的作用。 目的只有一个就是当程序退出时主动delete掉实例。其次new出来的指针要主动delete掉malloc出来的东西要主动free掉这些是编程的好习惯。 我在new出单例时初始化一个内部类static MyGC mygc; 带上static关键字后它的生命周期会一直持续到程序退出因为这个对象不是new也不是malloc出来的所有它就不会在堆内存里它会在静态代码区而单例是new出来的它就在堆内存里。在程序退出时就会调用内部类的析构函数这样我们就可以借此delete掉单例。这是一个很巧妙的使用。 C单例的增强 前面的代码中我们可以看到每个线程调用getinstance()都会先判断是否空是的话就new一个新的实例。实际上我们可以改进一下这段代码C11提供了call_once的功能就是说这个功能可以让某个函数只被调用一次。那么我们可以将创建单例的代码抽象成一个方法并使用这个方法只被调用一次这能给我们带来什么好处呢 我们上面的代码可能没有解决好在多线程中这个单例的初始化需要互斥的问题。也就是说可能存在多个线程在同时初始化这个实例。一般的做法就是给初始化的代码块加锁即 m_mutex.lock(); if(m_instance NULL){m_instance new TestCls();static MyGC mygc; } m_mutex.unlock();现在用c11提供的call_once函数功能就可以轻松解决这个初始化需要互斥的问题。调整过的部分 once_flag gflag; class TestCls{private:...static void createinstance(){if(m_instance NULL) {m_instance new TestCls();static MyGC mygc;}}public:...static TestCls* getinstance(){call_once(gflag,createinstance);return m_instance;}...... };我们还可以再提高一些效率 once_flag gflag; class TestCls{private:...static void createinstance(){if(m_instance NULL) {m_instance new TestCls();static MyGC mygc;}}public:...static TestCls* getinstance(){if(m_instance NULL) { // 进一步提高效率call_once(gflag,createinstance);}return m_instance;}...... };
http://www.hkea.cn/news/14287368/

相关文章:

  • 网站建设费能抵扣吗网站建设有证书吗
  • 广东seo网站推广代运营中国建筑招聘2022
  • 深圳网站建设公司网络服务百度网站排名全掉
  • 宣传 网站建设方案seo推广排名重要吗
  • 织梦网站模板还原的文件在哪里免费咨询问题
  • 手机淘宝客网站建设建设部网站39文件
  • 织梦网站会员功能旅游网站网页设计
  • 织梦wap网站模板科丰化工东莞网站建设
  • 阿里云虚拟主机网站吗宁波专业建设网站建站公司
  • 贺卡制作网站监控网站开发
  • 阜阳做网站怎么免费给网站做收录
  • 太原网站建设公司哪家好浏览广告赚钱一天100元
  • 什么是可信网站怎么设计网页模板
  • 如何检查网站死链网站建设夬金手指花总
  • 什么专业的会做网站高端商务经纪网站建设
  • 台州椒江网站建设公司中国建设银行网站能解密码
  • 交易平台网站怎么做WordPress的Ajax插件
  • 做淘宝要用到哪些网站机械设备网站建设
  • 长春做网站多少钱国际品牌的广州网站建设
  • 如何制作一个网页网站怎样运营网站
  • 网站做接口朝阳网站seo
  • 网站建设公司的优势房地产销售入门培训
  • 广州 网站制作 网站推广南阳免费网站建设
  • 做网站IP企业公司简介
  • 在线购物商城网站建设一万并发量的视频网站建设
  • 网站想举报怎么做创业平台app
  • 如何快速学会做网站傻瓜式网站建设
  • 网站的注册宿迁市建设局投诉网站首页
  • 网站建设zgkr凡科互动游戏玩高分技巧
  • 十堰优化网站公司做淘宝差不多的网站