• 单键模式


    #include <mutex>
    #include <iostream>
    using namespace std;
    
    class Single{
    public:
        static Single*  ShareInstance();
        static void ReleaseInstance();
    
    private:
        Single();
        ~Single();
        Single(const Single &other);
        Single& operator=(const Single &other);
        
    private:
        static Single *m_pObj;
        static mutex *m_pMutex;
    };
    
    
    
    #include "Single.h"
    Single* Single::m_pObj = NULL;
    mutex* Single::m_pMutex = new mutex();
    Single* Single::ShareInstance(){
        if (NULL == m_pObj) {
            m_pMutex->lock();
            m_pObj = new Single();
            m_pMutex->unlock();
        }
        return m_pObj;
    }
    
    void Single::ReleaseInstance(){
        if (m_pObj) {
            delete m_pObj;
            m_pObj = NULL;
        }
    }
    
    Single::Single(){
        
    }
    Single::~Single(){
        
    }

    EX:

    #include <iostream>
    class SingleEx{
    public:
        static SingleEx& ShareInstance();
    private:
        SingleEx();
        ~SingleEx();
        SingleEx(const SingleEx &other);
        SingleEx& operator =(const SingleEx &other);
     
    };
    
    #include "SingleEx.h"
    
    
    SingleEx& SingleEx::ShareInstance(){
        static SingleEx obj;
        return obj;
    }
    
    SingleEx::SingleEx(){
        
    }
    
    SingleEx::~SingleEx(){
        
    }
  • 相关阅读:
    Java验证码
    Java内存泄漏问题
    Java常见异常总结
    Java编码与乱码问题
    Spring:源码解读Spring IOC原理
    Quartz 定时邮件发送多个备份文件
    spring-boot 多线程
    java并发基础
    Java多线程中wait语句的具体使用技巧
    多线程的死锁
  • 原文地址:https://www.cnblogs.com/zhidao-chen/p/3836198.html
Copyright © 2020-2023  润新知