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

找人做网站排名优化网站建设的摊销

找人做网站排名优化,网站建设的摊销,wordpress的幻灯片,wordpress使用html5目录 单例模式懒汉模式饿汉模式线程安全的懒汉模式双重检查锁定#xff08;过时#xff0c;错误的版本#xff09;C11 特有的线程安全懒汉模式 单例模式 单例模式可以说是23种设计模式中最为简单的一种设计模式 类中只有唯一一个实例并且是私有化的#xff0c;只能通过公… 目录 单例模式懒汉模式饿汉模式线程安全的懒汉模式双重检查锁定过时错误的版本C11 特有的线程安全懒汉模式 单例模式 单例模式可以说是23种设计模式中最为简单的一种设计模式 类中只有唯一一个实例并且是私有化的只能通过公有的静态函数获取并且构造函数私有化防止被外部实例化提供静态的公有函数用来获取访问唯一的一个实例 如果说类中的某一个资源是属于类本身的而不是所属类的某一个对象的我们就可以把这个资源设置为static, 类比来说如果某一个类的成员都是所属于类本身并且要公共使用的话我们就可以把这个类设置为单例模式并且提供唯一的static实例 公共使用 使用场景常用于数据库类日志类的实现 最简单的单例模式类 class single{private://私有静态指针变量指向唯一实例static single *p;//私有化构造函数single(){}~single(){}public://公有静态方法获取实例static single* getinstance(); };懒汉模式 单例模式类中有唯一一个实例的指针懒汉模式即第一次使用时才初始化这个单例模式的指针 class single{private://私有静态指针变量指向唯一实例static single *p;//私有化构造函数single(){}~single(){}public://公有静态方法获取实例static single* getinstance(); };single* single::p NULL; single* single::getinstance(){if (NULL p){p new single; }return p; }在调用getinstance函数获取唯一实例的时候才进行第一次初始化. 饿汉模式 饿汉模式顾名思义非常饿它是在程序一开始的时候就对唯一的实例初始化了 class single{private://私有静态指针变量指向唯一实例static single *p;//私有化构造函数single(){}~single(){}public://公有静态方法获取实例static single* getinstance(); }; single* single::p new single(); single* single::getinstance(){return p; }线程安全的懒汉模式 之前的懒汉模式并没有提到多线程安全的情况如果现在有多个线程使用单例模式类就有可能会导致多个线程对该实例的多次初始化这就产生错误了接下来给出线程安全版本 双重检查锁定过时错误的版本 class single{private://私有静态指针变量指向唯一实例static single *p;static pthread_mutex_t lock;//定义一个互斥锁//私有化构造函数single(){pthread_mutex_init(lock, NULL);}~single(){}public://公有静态方法获取实例static single* getinstance(); };pthread_mutex_t single::lock;single* single::p NULL; single* single::getinstance(){if (NULL p){pthread_mutex_lock(lock);if (NULL p){p new single;}pthread_mutex_unlock(lock);}return p; }这种保证线程安全的方式叫做双重检查锁定使用互斥锁对new进行保护又为了防止每次调用函数时都需要加锁在锁的外围又加了一层 if判断但是这种做法后来被证实是错误的并不能完全保证线程安全 详细参考Scott Meyers 与 Andrei Alexandrescu 的“C and the Perils of Double-Checked Locking”这篇文章 C11 特有的线程安全懒汉模式 class single{private:single(){}~single(){}public:static single* getinstance();};single* single::getinstance(){static single obj;return obj; }这种方式不需要加互斥锁也能保护线程安全算是最好的一种实现方式. class single{private:single(){}~single(){}void my_print_private(){ couthelloworldendl;}public:static single* getinstance();static void my_print_public() //这里也可以改成不是static,函数体直接调用my_print_private即可{single::getinstance()-my_print_private();}};single* single::getinstance(){static single obj;return obj; }
http://www.pierceye.com/news/391465/

相关文章:

  • 58同城网站建设目的劳务公司怎么注册需要什么要求
  • 龙华网站建设设计公司国家中小学智慧教育平台
  • 摄影网站采用照片做宣传_版权费是多少?pythom+网站开发规范
  • 免费制作一个自己的网站吗达内教育口碑怎么样
  • 2015做那个网站能致富网站建设模板ppt模板
  • 网站后台管理系统教程自助网站建设程序
  • 做黑帽需不需要搭建网站没有做等保的网站不能上线对吗
  • 怎么在微信建立公众号郑州专业seo首选
  • 万网网站后台国家域名
  • 怎么做 niche网站临港注册公司优惠政策
  • 做网站开发怎么做网站推广的步骤
  • 网站空间文件删不掉软文免费发布平台
  • 电子商务网站开发教程论文推广app平台有哪些
  • 郑州专业的网站建设优化自己的网站
  • 申请渠道门户网站是什么意思微信公众平台推广网站
  • 公司网站未备案公众号如何推广产品
  • 网站建设服务器环境配置郑州网站建设企业名录
  • e福州官方网站wordpress注册目录
  • 国际外贸网络交易平台网页seo搜索引擎优化
  • 做网做网站建设网站建设图片怎么切
  • 国外数码印花图案设计网站36kr wordpress
  • 上海网站建设设计公司zencart 网站入侵
  • 阜蒙县自治区建设学校网站汉中市住建局建设厅网站官网
  • windows 2008 iis怎么搭建网站手机网站模板建站
  • 优设网官网首页seo教程搜索引擎优化
  • 做问卷给钱的网站页面设计结课总结
  • 洛阳集团网站建设wordpress 深度优化
  • python做网站缺点湛江市建网站
  • 济南网站建设(选聚搜网络)在线购物网站建设
  • 珠海专业做网站公司昆明搜索引擎推广