25 lines
578 B
C++
25 lines
578 B
C++
//
|
|
// Created by light on 20-2-6.
|
|
//
|
|
|
|
#include <pthread.h>
|
|
#include <sys/param.h>
|
|
|
|
class singleton {
|
|
private:
|
|
singleton(); //私有构造函数,不允许使用者自己生成对象
|
|
singleton(const singleton &other);
|
|
|
|
//要写成静态方法的原因:类成员函数隐含传递this指针(第一个参数)
|
|
static void init() { p = new singleton(); }
|
|
|
|
static pthread_once_t ponce_;
|
|
static singleton *p; //静态成员变量
|
|
public:
|
|
singleton *instance() {
|
|
// init函数只会执行一次
|
|
pthread_once(&ponce_, &singleton::init);
|
|
return p;
|
|
}
|
|
};
|