多线程模拟购票系统

时间:2021-07-26 10:46:36
 1 //多线程火车购票
 2 #include "stdafx.h"
 3 #include<stdlib.h>
 4 #include<Windows.h>
 5 #include<time.h>
 6 #include<stdio.h>
 7 #include<iostream>
 8 using namespace std;
 9 
10 int a=100; //如果有100张火车票
11 HANDLE hMutex;
12 DWORD WINAPI Func(LPVOID lpParamter)//VIP窗口的功能
13 {
14      while(a>=0)
15      {
16           WaitForSingleObject(hMutex,INFINITE);//等待处理时间
17           printf("\rVIP窗口现在还有%d张票\n",a--);
18           Sleep(1000);
19           ReleaseMutex(hMutex);//放弃使用权
20      }
21     return 0;
22 }
23 //假使只有一个售票窗口
24 int main()
25 {  
26      HANDLE hThread=CreateThread(NULL,0,Func,NULL,0,NULL);//创建线程
27      hMutex=CreateMutexA(NULL,FALSE,"1234");//创建互斥(锁)
28      while(a>=0)
29      {
30           printf("\r平民窗口还有%d张票\n",a--);
31           Sleep(1000);
32      }
33      CloseHandle(hThread);
34      system("pause");
35      return 0;
36 };