类似凡科互动的网站,做网站营销,中企动力app,移动网站开发pdf介绍 单例模式优点是可以确保系统中只存在单个对象实例#xff0c;缺点是不便扩展#xff0c;一定程度上违背单一原则#xff0c;既提供业务方法#xff0c;又提供创建对象方法
饿汉式单例 在类加载的时候就创建好对象#xff0c;获取对象时直接返回即可
class EagerSin…介绍 单例模式优点是可以确保系统中只存在单个对象实例缺点是不便扩展一定程度上违背单一原则既提供业务方法又提供创建对象方法
饿汉式单例 在类加载的时候就创建好对象获取对象时直接返回即可
class EagerSingleton {
public:static EagerSingleton *getInstance() {return m_inst;}private:EagerSingleton() {}static EagerSingleton *m_inst;
};EagerSingleton *EagerSingleton::m_inst new EagerSingleton();
懒汉式单例 在类加载的时候没有创建对象第一次获取对象时根据需要创建对象并返回此时需要考虑线程安全问题
class LazySingleton {
public:static LazySingleton *getInstance() {if (s_inst NULL) {std::lock_guardstd::mutex lg(s_mtx);if (s_inst NULL) {s_inst new LazySingleton();}}return s_inst;}private:LazySingleton() {}static LazySingleton *s_inst;static std::mutex s_mtx;
};LazySingleton *LazySingleton::s_inst NULL;
std::mutex LazySingleton::s_mtx;
饿汉式和懒汉式对比 饿汉式和懒汉式优缺点 实现方式优点缺点饿汉式简单无须考虑线程安全调用速度快无论是否需要都创建了对象资源利用效率不高导致系统启动时间变长懒汉式系统启动时间减少可以延迟创建对象提高资源利用效率需要处理线程安全问题初始化期间有可能影响系统性能
IoDH技术 应该是java语言独有的不确定性能如何