首页 > 作文

C++实现单例模式的方法

更新时间:2023-04-04 03:39:29 阅读: 评论:0

目录
饿汉模式懒汉模式锁 + 智能指针局部静态变量总结

饿汉模式

类实例化就会占用内存,浪费资源,效率高,不存在线程安全问题。

class singleton{    singleton() { }    static singleton* m_instance_ptr;public:    static singleton* get_instance() {        return m_instance_ptr;}};singleton* singleton::m_instance_ptr = new singleton();int main(){    singleton* instance1 = singleton::get_instance();    singleton* instance2 = singleton::get_instance();    return 0;}

懒汉模式

延迟加载,节省资源,效率低,存在线程安全问题。

class singleton {    singleton() { }    static singleton* m_instance_ptr;pu教师成长规划blic:    static singleton* get_instance() {        if(m_instance_ptr == nullptr)m_instance_ptr = new singleton();        return m_instance_ptr;    }};singleton* singleton::m_instance_ptr = nullptr;i报名号nt main(){    singleton* instance1 = singleton::get_instance();    singleton* instance2 = singleton::get_instance();    return 0;}

锁 + 智能指针

线程安全(锁)+ 内存回收(智能指针)

#include <iostream>#include <memory>#include <mutex>class singleton {public:typedef std::shared_ptr<singleton> ptr;    static ptr get_instance() {        if(m_instance_ptr == nullptr) {            std::lock_guard<std::mutex> lk(m_mutex);            if(m_instance_ptr == nullptr)m_instance_ptr = std::shared_ptr<singleton>(new singleton);        }        return m_instance_ptr;    }private:singleton() {}    static ptr m_instance_ptr;    static std::mutex m七夕情人节祝福语大全_mutex;};singleton::ptr singleton::m_instance_ptr = nullptr;std::mutex singleton::m_mutex;int main(){    singleton::ptr instance1 = singleton::get_instance();    singleton::ptr instance2 = singleton::get_instance(话术销售技巧);    return 0;}

局部静态变量

class singleton {public:    singleton(const singleton&)=delete;    static singleton& get_instance() {        static singleton instance;        return instance;    }private:    singleton() {}};int main() {singleton& instance1 = singleton::get_instance();    singleton& instance2 = singleton::get_instance();    return 0;}

总结
小学美术教案

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注www.887551.com的更多内容!

本文发布于:2023-04-04 03:39:28,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/f7fd08fde73ab81d468be2bad6dcef04.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:C++实现单例模式的方法.doc

本文 PDF 下载地址:C++实现单例模式的方法.pdf

标签:线程   模式   指针   懒汉
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图