首页 > 代码库 > 火车站售票系统模拟程序

火车站售票系统模拟程序

#include<windows.h>
#include<iostream.h>
DWORD WINAPI fun1proc(LPVOID lparameter);
DWORD WINAPI fun2proc(LPVOID lparameter);
int index=0;
int tickets=100;
HANDLE hmutex;   //定义互斥对象句柄

int main()
{
HANDLE ht1;   //线程一句柄
HANDLE ht2;   //线程二句柄
ht1=CreateThread(NULL,0,fun1proc,NULL,0,NULL);  //创建线程一,(NULL(默认安全性),初始宅大小,入口函数,传递参数,0(创建线程立即运行),接收线程的ID)
ht2=CreateThread(NULL,0,fun2proc,NULL,0,NULL);//创建线程二
CloseHandle(ht1);
CloseHandle(ht2);
    hmutex=CreateMutex(NULL,FALSE,NULL);   //创建互斥对象,(NULL(默认安全性),互斥对象的拥有者,互斥对象的名称(NULL是匿名))
Sleep(4000);  //等待
return 0;
}
DWORD WINAPI fun1proc(LPVOID lparameter)  //线程一
{
while(1)
{
WaitForSingleObject(hmutex,INFINITE);  (互斥对象的句柄,等待时间)
if(tickets>0)
{
Sleep(1);
cout<<"线程一卖出一张票:"<<tickets--<<endl;
}
else
{
break;
}
ReleaseMutex(hmutex);  //释放互斥对象
}
return 0;
}
DWORD WINAPI fun2proc(LPVOID lparameter)   //线程二
{
while(1)
{
WaitForSingleObject(hmutex,INFINITE);
if(tickets>0)
{
Sleep(1);
cout<<"线程二卖出一张票:"<<tickets--<<endl;
}
else
{
break;
}
ReleaseMutex(hmutex);
}
return 0;
}

火车站售票系统模拟程序