#include <Windows.h>
#include <process.h>
#include <iostream>
using namespace std;
class Singelton
{
private:
Singelton()
{
cout << "Singelton构造函数begin" << endl;
Sleep(1000);
cout << "Singelton构造函数end" << endl;
}
public:
static Singelton* getSingelton()
{
if (single == NULL) //需要判断
{
count++;
single = new Singelton();
}
return single;
}
static Singelton* releaseSingelton()
{
if (single != NULL) //需要判断
{
delete single;
single = NULL;
}
return single;
}
static void pirntS() //测试函数
{
cout << "Singelton printS test" << endl;
}
private:
static Singelton* single;
static int count;
};
Singelton* Singelton::single = NULL;
int Singelton::count = 0;
void MyThreadFunc(void*)
{
//cout << "我是线程体 ...." << endl;
cout << "我是线程体 ....\n";
Singelton::getSingelton()->pirntS();
}
int main()
{
HANDLE hThread[10];
for (int i = 0; i < 3; i++)
{
hThread[i] = (HANDLE)_beginthread(MyThreadFunc, 0, NULL);
}
for (int i = 0; i < 3; i++)
{
WaitForSingleObject(hThread[i], INFINITE);
}
}