美文网首页
C++单例模式

C++单例模式

作者: 从此110 | 来源:发表于2020-05-07 16:41 被阅读0次
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>

pthread_mutex_t lock;
class Singleton{
    private:
        Singleton(){}
        static Singleton* instance;

    public:
        ~Singleton(){}
        static Singleton* getInstance(){
            if(instance==NULL){
                pthread_mutex_lock(&lock);
                if(instance==NULL){
                    instance=new Singleton;
                    printf("obj created.\n");
                }
                pthread_mutex_unlock(&lock);
            }
            return instance;
        }
};

Singleton* Singleton::instance = NULL;
//Singleton* Singleton::instance = new Singleton;

void* fun1(void*){
    Singleton::getInstance();
    printf("%d\n", 1);
}

void* fun2(void*){
    Singleton::getInstance();
    printf("%d\n", 2);
}

int main(void){
    pthread_mutex_init(&lock, NULL);

    pthread_t pid1, pid2;
    pthread_create(&pid1, NULL, fun1, NULL);
    pthread_create(&pid2, NULL, fun2, NULL);

    pthread_join(pid1, NULL);
    pthread_join(pid2, NULL);

    pthread_mutex_destroy(&lock);

    return 0;
}

相关文章

  • 学而时习之单例模式

    本文主要说明单例模式的概念,应用,以及C++实现。 I、上帝视角看单例模式 1.1 单例模式特点 单例模式需要满足...

  • 单例模式

    单例模式及C++实现代码单例模式4种实现详解 c++11改进我们的模式之改进单例模式 单例模式(Singleton...

  • Singleton 单例模式

    搬运自大神博客单例模式(Singleton)及其C++实现 单例模式,在GOF的《设计模式:可复用面向对象软件的基...

  • 【设计模式】单例模式

    单例模式 常用单例模式: 懒汉单例模式: 静态内部类单例模式: Android Application 中使用单例模式:

  • Android设计模式总结

    单例模式:饿汉单例模式://饿汉单例模式 懒汉单例模式: Double CheckLock(DCL)实现单例 Bu...

  • C++懒汉式单例模式遇到多线程

    C++懒汉式单例模式遇到多线程 单例模式是一个创建型设计模式, 就是保证在整个程序运行中仅存在该类的一个实例, 比...

  • 单例模式C++

    单例模式,就说保证一个类仅有一个实例,并提供一个访问它的全局访问点。 单例模式结构图 单例模式基本代码 懒汉式和饿...

  • C++单例模式

    所谓单例模式,就是只允许全局有一个此类生成的对象。在C++中有几种实现,下面一一列举。 1. 最初模式 需要解释的...

  • c++ 单例模式

    链接 为什么要用double checking 之前在使用Double Check Locking 模式时,发现自...

  • C++单例模式

    一、两个基本原则 把构造函数、拷贝构造函数、赋值操作符函数设置为私有的,从而阻止用户去实例化一个对象; 提供一个公...

网友评论

      本文标题:C++单例模式

      本文链接:https://www.haomeiwen.com/subject/tfiaghtx.html