不用锁怎么写单例模式
某次面试问我不用锁怎么写单例模式?面试官是C++的,C++的枚举可以吗?
全部评论
cpp最厉害的写法是用call- once配合uniqptr,这样写线程安全内存也安全安,不用写析构函数
从C++11开始,局部static变量的初始化时线程安全的:
template<typename T>
class Singleton {
public:
static T* getInstance() {
static T _instance;
return &_instance;
}
};
饿汉式和静态局部变量
用一个静态局部变量,确保只有一个对象
用局部静态变量可以实现
把构造函数和析构函数都声明成私有函数,把成员变量声明成静态public成员变量,再声明个静态成员函数返回这个成员变量
局部静态变量,C++11之后是线程安全的
可以用两个原子变量实现
c++11 可以shared_ptr配合 once_flag去写,懒汉和饿汉式都可以实现
可以懒汉式+一个静态内部类,内部类里放单例对象
C++的静态局部变量是线程安全的

static
静态局部变量,静态变量在整个程序周期内只会初始化一次
11之后的,局部静态变量
static应该可以
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享