#include<iostream>//恶汉式单例
#include<pthread.h>
#include<unistd.h>
using namespace std;
class singletion//单例类
{
public:
static singletion * getinstance()//提供给外部的创建对象的接口
{
objcount++;
return instance;
}
static void releae()
{
delete instance;
instance = NULL;
}
private:
singletion(){}//构造函数私有化
static singletion *instance;//静态成员变量作为对象指针
public:
static int objcount;
};
singletion* singletion::instance = new singletion;
int singletion::objcount = 0;
void * create(void *agg)
{
singletion *s = singletion::getinstance();
cout<<s<<endl;
cout<<singletion:: objcount<<endl;
return NULL;
}
int main()
{
// singletion *s1 = singletion::getinstance();
// singletion *s2 = singletion::getinstance();
// singletion *s3 = singletion::getinstance();
// cout<<s1<<endl;
// s1->releae();
// cout<<s2<<endl;
// cout<<s3<<endl;
pthread_t pid[20];
for(int i = 0; i < 20; i++)
{
pthread_create(&pid[i],NULL,create,NULL);
}
for(int i = 0; i < 20; i++)
{
pthread_join(pid[i],NULL);
}
return 0;
}
C++ 饿汉式单例
最新推荐文章于 2024-04-18 20:00:51 发布