这是程序员面试宝典中的一个例子,这里把其中的程序列写出来。
题目:
创建两个进程模拟火车站两个窗口售票程序,窗口售票时间为1s,两个窗口不能同时售票。
#include <iostream>
#include <string.h>
#include <Windows.h>
using namespace std;
DWORD WINAPI fun1proc(LPVOID lpParameter);
DWORD WINAPI fun2proc(LPVOID lpParameter);
int index = 0;
int tickets = 10;
HANDLE hMutex;
int main(int argc, char* argv[])
{
HANDLE hThread1;
HANDLE hThread2;
hThread1 = CreateThread(NULL, 0, fun1proc, NULL, 0, NULL);
hThread2 = CreateThread(NULL, 0, fun2proc, NULL, 0, NULL);
//create mutex
hMutex = CreateMutex(NULL, TRUE, NULL);
if (hMutex)
{
if (ERROR_ALREADY_EXISTS == GetLastError())
{
cout<<"Only one instance can run!"<<endl;
return 0;