概述
#include <Windows.h>
#include <iostream>
DWORD WINAPI pThread(LPVOID lpParameter);//线程一
DWORD WINAPI sThread(LPVOID lpParameter);//线程二
using namespace std;
int tickets=100;
HANDLE hMutex;//互斥对象句柄
void main()
{
HANDLE hThread1;
HANDLE hThread2;
cout<<"start cell:"<<endl;
hThread1=CreateThread(NULL,0,pThread,NULL,0,NULL);
Sleep(10);
hThread2=CreateThread(NULL,0,sThread,NULL,0,NULL);
CloseHandle(hThread2);
CloseHandle(hThread1);
//创建互斥对象
hMutex=CreateMutex(NULL,false,NULL);
getchar();
//Sleep(5000);
}
//thread1
DWORD WINAPI pThread(LPVOID lpParameter)
{
while(TRUE)
{
WaitForSingleObject(hMutex,INFINITE);
if (tickets>0)
{
Sleep(1000);
cout<<"ppp cell ticket:"<<tickets--<<endl;
}
else
break;
ReleaseMutex(hMutex);
}
return 0;
}
//thread2
DWORD WINAPI sThread(LPVOID lpParameter)
{
while(TRUE)
{
WaitForSingleObject(hMutex,INFINITE);
if (tickets>0)
{
Sleep(1000);
cout<<"sss cell ticket:"<<tickets--<<endl;
}
else
break;
ReleaseMutex(hMutex);
}
return 0;
}
最后
以上就是风趣悟空为你收集整理的多线程中互斥对象的使用示例的全部内容,希望文章能够帮你解决多线程中互斥对象的使用示例所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复