#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
class singleton{
private:
static volatile singleton *p;
static pthread_mutex_t mtx;
singleton(){}
public:
static singleton * getInstance();
};
singleton * singleton::p = NULL;
pthread_mutex_t singleton::mtx;
singleton * singleton::getInstance(){
if (p == NULL){
pthread_mutex_lock(&mtx);
if (p == NULL) p = new singleton;
pthread_mutex_unlock(&mtx);
}
return p;
}
int main(){
singleton * ptr = singleton::getInstance();
singleton * ptr1 = singleton::getInstance();
return 0;
}
Linux C++ 单例模式
最新推荐文章于 2022-05-20 16:18:50 发布