您的位置:首页 > 其它

single model

2016-07-23 15:06 381 查看
#include <iostream>
#include <windows.h>
using namespace std;

class Single
{
public:
static Single & GetInstance() {
static Single _obj;
return _obj;
}

void Print()
{
cout << "hello world : " << endl;
}

protected:
Single()
{

}

~Single()
{

}

};

class Single1
{
public:
static Single1 * GetInstance() {
if (NULL == m_pSingle)
{
nCount++;
m_pSingle = new Single1;
}

return m_pSingle;
}

void Print()
{
cout << "Single1: hello world : " << nCount << endl;
}

protected:
Single1()
{

}

~Single1()
{

}

private:
static Single1* m_pSingle;
static int nCount;
};

class Single1 * Single1::m_pSingle = NULL;
int Single1::nCount = 0;

void WorkThread(void *pParam)
{
Sleep(rand()%100);
Single::GetInstance().Print();
}

void WorkThread1(void *pParam)
{
Sleep(rand()%100);
Single1::GetInstance()->Print();
}

int main(int argc, char *argv[])
{
Single::GetInstance().Print();

::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread, NULL, 0, 0);
::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread, NULL, 0, 0);
::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread, NULL, 0, 0);

::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread1, NULL, 0, 0);
::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread1, NULL, 0, 0);
::CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)WorkThread1, NULL, 0, 0);
getchar();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: