#include <iostream>
#include <windows.h>
using namespace std;
HANDLE hMutex;
DWORD WINAPI Fun(LPVOID lpParamter)
{
while(1)
{
WaitForSingleObject(hMutex, INFINITE);
cout<<"A"<<endl;
Sleep(1000);
ReleaseMutex(hMutex);
}
return 0;
}
DWORD WINAPI Fun1(LPVOID lpParamter)
{
while(1)
{
WaitForSingleObject(hMutex, INFINITE);
cout<<"B"<<endl;
Sleep(1000);
ReleaseMutex(hMutex);
}
return 0;
}
int main()
{
HANDLE hThread = CreateThread(NULL, 0, Fun, NULL, 0, NULL);
hMutex = CreateMutex(NULL, FALSE, (LPWSTR)"screen");
CloseHandle(hThread);
HANDLE hThread1 = CreateThread(NULL, 0, Fun1, NULL, 0, NULL);
CloseHandle(hThread1);
while(1);
return 0;
}
以上是两个子线程之间交替。主线程闲着。
下面是主线程和一个子线程之间交替
#include <iostream>
#include <windows.h>
using namespace std;
HANDLE hMutex;
DWORD WINAPI Fun(LPVOID lpParamter)
{
while(1)
{
WaitForSingleObject(hMutex, INFINITE);
Sleep(1000);
cout<<"Fun display!"<<endl;
ReleaseMutex(hMutex);
}
}
int main()
{
HANDLE hThread = CreateThread(NULL, 0, Fun, NULL, 0, NULL);
hMutex = CreateMutex(NULL, FALSE, (LPWSTR)"screen");
CloseHandle(hThread);
while(1)
{
WaitForSingleObject(hMutex, INFINITE);
Sleep(1000);
cout<<"main display!"<<endl;
ReleaseMutex(hMutex);
}
return 0;
}
各位大神,如果我想只输出10次呢?怎么改呢?