设计模式之单例模式,懒汉模式与饿汉模式
来源:互联网 发布:百度读书软件 编辑:程序博客网 时间:2024/05/12 08:24
设计模式之单例模式,懒汉模式与饿汉模式
单例模式是一种常用的软件设计模式,它保证在软件运行过程中对象在内存中只存在一份实例,单例模式通常有懒汉模式与饿汉模式。
1.懒汉模式
懒汉模式是在第一次调用的时候才创建实例,但是在多线程的环境下很可能创建多个实例,因此是线程不安全的。
C++代码:
class Singleton{ protected: Singleton(){} Singleton(const Singleton& singleton)(){} private: static Singleton* p; public: static Singleton* instance();}Singleton* Singleton::p = NULL;Singleton* Singleton::instance(){ if(NULL == p) { //多线程不安全进入 p = new Singleton(); } return p;}
这里切记除了给类添加一个保护的构造函数外,还需添加一个保护的拷贝构造函数,不然编译器会给我们添加一个public访问标志的构造函数,这时我们按照下面这样可以生成多个实例:
Singleton* singleton = Singleton::instance();//调用编译器提供的默认构造函数Singleton singleton1 = *singleton;Singleton singleton2 = *singleton;
2.饿汉模式
饿汉模式是在程序加载的时候就已经创建了一个实例,不存在多线程环境下创建多实例的问题,因此是线程安全的。
C++代码:
class Singleton{ protected: Singleton(){} Singleton(const Singleton& singleton)(){} private: static Singleton* p; public: static Singleton* instance();}Singleton* Singleton::p = new Singleton();Singleton* Singleton::instance(){ return p;}
原文地址:
http://www.uptoday.net/articles/2017/12/16/1513423966809.html#b3_solo_h4_2
阅读全文
0 0
- 设计模式——单例模式之“饿汉模式”与“懒汉模式”
- 设计模式之单例模式,懒汉模式与饿汉模式
- 单例模式之 --饿汉模式与懒汉模式
- 设计模式:单例模式,懒汉与饿汉
- 单例设计模式之懒汉模式
- 单例模式(懒汉模式与饿汉模式)
- Java 单例模式之饿汉模式 懒汉模式
- 单例设计模式-懒汉饿汉
- 单例设计模式(饿汉模式与懒汉模式)
- Java中的单例设计模式之饿汉模式、懒汉模式
- 单类设计模式 --- 饿汉模式 & 懒汉模式
- 单例模式之懒汉模式与饿汉模式的对比
- Java单例模式之饿汉模式与懒汉模式
- java单例模式之饿汉模式与懒汉模式
- 设计模式之单例设计模式(饿汉单例设计模式&懒汉单例设计模式)
- 单例设计模式之懒汉式
- 设计模式之单例设计模式(懒汉式)
- 单例模式之饿汉懒汉模式
- 【requireJS源码学习02】data-main加载的实现
- 哈希算法
- 解决git-忽略文件,添加gitignore,处理已经track的文件
- pytorch使用(三)网络结构可视化
- 动态规划之0/1背包问题
- 设计模式之单例模式,懒汉模式与饿汉模式
- opencv——轮廓检测
- Spring DAO(1):基础 & 数据源配置
- STM32固件库
- Windows7 系统上配置caffe GPU/CPU 的深度学习框架
- 系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式
- tensorflow.slice_input_producer
- FasterRCNN算法:RPN层的深入理解
- 军事理论课答案(西安交大版)