饱汉式
在真正需要使用的时候才进行构建,而不是在一开始就创建。如果要保证线程安全,需要使用一个mutex来保证。
饿汉式
- 类加载时即创建对象,线程安全
- 优点:执行效率高
- 缺点:类加载时就初始化,浪费内存资源
#include<iostream>using namespace std;class Single{public:static Single* getInstance(){// if(pointer == nullptr){// pointer = new Single();// pointer->t = 10;// }return pointer;}void get(){cout << t << endl;}~Single(){}private:Single(){};int t = 0;static Single* pointer;
};// Single* Single::pointer = nullptr; // 饱汉式Single* Single::pointer = new Single(); // 饿汉式int main(){auto p1 = Single::getInstance();auto p2 = Single::getInstance();cout << std::boolalpha << bool(p1 == p2) << endl; return 0;
}