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

网站幕布拍摄wordpress文章搜索排序

网站幕布拍摄,wordpress文章搜索排序,在线设计外卖平台店招,做相册本哪个网站好用文章目录 1、什么是单例2、一个好的单例应该具备的条件3、懒汉模式与饿汉模式4、单例实现#xff1a;线程安全、内存安全的懒汉式单例#xff08;基于C11的智能指针和互斥锁#xff09; 1、什么是单例 单例 Singleton 是设计模式的一种#xff0c;其特点是只提供唯一一个类… 文章目录 1、什么是单例2、一个好的单例应该具备的条件3、懒汉模式与饿汉模式4、单例实现线程安全、内存安全的懒汉式单例基于C11的智能指针和互斥锁 1、什么是单例 单例 Singleton 是设计模式的一种其特点是只提供唯一一个类的实例具有全局变量的特点在任何位置都可以通过接口获取到那个唯一实例。 具体应用场景如 设备管理器。系统中可能有多个设备但是只有一个设备管理器用于管理设备驱动 数据池。用来缓存数据的数据结构需要在一处写多处读取或者多处写多处读取。 2、一个好的单例应该具备的条件 全局只有一个实例static 特性同时禁止用户自己声明并定义实例把构造函数设为 private用户通过接口获取实例使用 static 类成员函数禁止赋值和拷贝线程安全 3、懒汉模式与饿汉模式 懒汉模式 时间换空间故名思义不到万不得已就不会去实例化对象在第一次用到类实例的时候才会去实例化对象多线程情况下会存在线程安全问题需要加互斥锁进行防护。 饿汉模式 空间换时间在单例类定义的时候就进行实例化对象当需要使用时只要通过接口函数直接获取对象。 4、单例实现线程安全、内存安全的懒汉式单例基于C11的智能指针和互斥锁 #include iostream #include memory #include mutexclass Singleton { public:~Singleton() {std::cout destructor called! std::endl;}Singleton(Singleton) delete; // copy constructor cant be calledSingleton operator(const Singleton) delete; // assignment operator cant be calledstatic std::shared_ptrSingleton getInstance() {// 双重锁检测if (m_pInstance nullptr) {std::lock_guardstd::mutex lk(m_mutex);if (m_pInstance nullptr) {m_pInstance std::shared_ptrSingleton(new Singleton);}}return m_pInstance;}private:Singleton() {std::cout constructor called! std::endl;}private:static std::shared_ptrSingleton m_pInstance;static std::mutex m_mutex; };// initialization static variables out of class std::shared_ptrSingleton Singleton::m_pInstance nullptr; std::mutex Singleton::m_mutex;int main() {std::shared_ptrSingleton instance1 Singleton::getInstance();std::shared_ptrSingleton instance2 Singleton::getInstance();return 0; }运行结果 PS E:\Code\VSCode\Demo\build .E:/Code/VSCode/Demo/build/main.exe constructor called! destructor called!基于 shared_ptr用了C比较倡导的 RAII 思想即用对象管理资源。当 shared_ptr 析构的时候new 出来的对象也会被 delete 掉此避免内存泄漏。加了锁使用互斥量来达到线程安全。这里使用了两个 if 判断语句的技术称为双检锁其好处是只有判断指针为空的时候才加锁避免每次调用 get_instance 的方法都加锁毕竟锁的开销还是有点大的。 不足之处在于 使用智能指针会要求用户也得使用智能指针非必要不应该提出这种约束使用锁也有开销并且在某些平台与编译器和指令集架构有关双检锁会失效
http://www.pierceye.com/news/997730/

相关文章:

  • ASP.NET实用网站开发 课后答案开发网站过程
  • 做网站需要编码吗仿站网站源码
  • 响应式网站什么意思爱南宁app下载官网最新
  • 自己做的网站怎么添加采集模块网站管理包括哪些内容
  • php做网站验证码的设计电商网站的二级怎么做
  • 广西网站建设价钱微信crm管理系统
  • 福州网站建设公司中小企业荆门市城乡建设管理局网站
  • 建设信用卡网站首页有做车身拉花的网站吗
  • 怎么做婚恋网站织梦网站推广插件
  • rtt全民互助平台网站开发自己怎样做免费网站
  • 建站模板东营建网站公司
  • 如何用vs做网站网络推广方案下拉管家微xiala11
  • 可以做彩票广告的网站吗做网站的应用
  • 龙岗网站 建设深圳信科湘潭做网站价格品牌磐石网络
  • 湖北网站排名优化安卓项目开发
  • 网站怎么引入微信支付郑州官方通报
  • 在南宁做家教兼职的网站北京通州做网站
  • 深圳网站的建设维护公司秦皇岛市建设局官网
  • 做网站 插件静态网站开发课程相关新闻
  • 网站建站 公司无锡搜索引擎营销的内容
  • 公司网站建设小知识单页网站是什么样子的
  • 大学网站建设排名深圳网站建设公司报价
  • 贵阳网站制作公司茶叶推广方案
  • 自适应 网站开发wordpress域名邮箱设置
  • 深圳网站设计网站制作非织梦做的网站能仿吗
  • 做网站可以使用免费空间吗沧州百姓网免费发布信息网
  • 关于阅读类网站的建设规划书使用密码访问wordpress文章
  • 做鲜花配送网站需要准备什么郑州官网网站优化公司
  • 评论网站建设个人网站域名名字
  • 郑州做茶叶的网站科技公司官网设计源代码