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

长长沙网站制作北京百度推广公司

长长沙网站制作,北京百度推广公司,在线数据分析网站,中国住房城乡建设厅网站单例模式:全局唯一实例 懒汉式:获取时才初始化 ①静态局部变量实现(Meyer’s Singleton)【推荐】 /* 类内创建自身实例的可行性分析:在C中,类可以通过静态成员函数创建自身实例。这种机制的核心在于&…

单例模式:全局唯一实例

懒汉式:获取时才初始化

①静态局部变量实现(Meyer’s Singleton)【推荐】

/*
类内创建自身实例的可行性分析:在C++中,类可以通过静态成员函数创建自身实例。这种机制的核心在于:1.构造函数必须设为private,防止外部直接实例化2.通过静态方法控制实例的创建过程(即静态成员函数)3.必须禁用拷贝构造函数和赋值运算符(= delete)
*/
class Single
{
private:Single(){}~Single(){}Single(const Single& single){}=delete;Single& operator=(const Single& single){}=delete;
public://获取实例,注意这个static修饰的是函数本身,表示是静态成员函数//static不能修饰返回值,这个函数的返回值类型是Single&static Single& getInstance(){//Single成为静态局部变量,天然线程安全,不需要锁来同步(编译器会自动插入互斥锁)//无论调用 getInstance() 多少次,single只会初始化一次static Single single_;return single_;//可以返回静态局部变量的引用,因为函数销毁后,静态局部变量依然存在(生命周期直到程序结束)}
}

②使用双检锁,配合(类静态成员)智能指针【传统优化】

#include <memory>
#include <mutex>class Single
{
private:Single(){}~Single(){}Single(const Single& single){}Single& operator=(const Single& single){}
private://如果锁保护的变量是所有对象共享的,那么这个互斥量必须是静态变量static std::mutex mtx;//静态互斥量(所有对象公用这一个互斥量)//单例模式中,实例只有一个,所以这个智能指针也要是静态的,保证只有一个,并指向那个唯一实例static std::shared_ptr<Single> singlePtr;//静态智能指针
public:static std::shared_ptr<Single>& getInstance(){//因为实例只有一个,如果已经创建了,就不需要加锁了;只有没有实例才需要加锁if(!singlePtr)//用于提高效率{std::unique_lock<std::mutex> lock(mtx);//当多个线程同时通过第一次无锁检查(!singlePtr)时,这些线程会依次进入同步块(锁内代码)。此时,若没有第二次检查,每个获得锁的线程都会重新创建实例,导致单例失效。if(!singlePtr)//用于保证实例只创建一次singlePtr=std::make_shared<Single>();}}
};
std::mutex mtx;
std::shared_ptr<Single> singlePtr=nullptr;
http://www.dtcms.com/wzjs/319715.html

相关文章:

  • 外汇返佣网站开发南京百度推广优化排名
  • ai怎么做网站用海报国际新闻稿件
  • 深圳网站营销推广公司电话免费建站有哪些
  • 最近时政新闻seo综合诊断工具
  • 建筑方案设计网站济宁网站建设
  • 网络工程专业是做什么工作的苏州关键词seo排名
  • 公安局网站建设的必要性房地产销售
  • 虾皮跨境电商app下载淘宝seo是什么意思啊
  • 公司做网站怎么推广2020年关键词排名
  • 做网站公司网站链接推广工具
  • wordpress首页阅读全文seo关键词优化公司哪家好
  • 竹溪县县建设局网站百姓网推广怎么收费标准
  • 珠海网站制作网络推广seo教学培训
  • 嘉兴秀宏建设公司网站淘宝引流推广怎么做
  • 苏州专业网站设计郑州网站推广哪家专业
  • 龙岩kk社区抖音seo代理
  • 汕头市建设局造价信息网站seo关键技术有哪些
  • 武汉市政府网站建设作者广告联盟赚钱app
  • 无锡知名网站制作线上广告接单平台
  • 做快餐 承包食堂的公司网站公司网站建设流程
  • asp网站做文件共享上传网站建设公司
  • 软件ui设计公司湖南靠谱的关键词优化哪家好
  • 织梦网站做中英文双语言版本产品推广方法
  • 上饶有哪些做网站的公司怎么免费注册域名
  • wordpress调用菜单代码seo百度快照优化公司
  • 深圳西乡网站制作成都百度网站排名优化
  • 大连网站建设服务公司可视化网页制作工具
  • wordpress have_posts()seo顾问服务公司
  • 美国政府网站建设网络营销课程个人总结范文
  • 河南省建设监理网站怎么宣传自己的店铺