zoukankan      html  css  js  c++  java
  • C++ 多线程(两个线程卖火车票)

    #include <windows.h>
    #include <iostream.h>
    
    DWORD WINAPI Fun1Proc(LPVOID lpParameter);//thread data
    DWORD WINAPI Fun2Proc(LPVOID lpParameter);//thread data
    
    int index=0;
    int tickets=10;
    HANDLE hMutex;
    void main()
    {
        HANDLE hThread1;
        HANDLE hThread2;
        //创建线程
    
        hThread1=CreateThread(NULL,0,Fun1Proc,NULL,0,NULL);
        hThread2=CreateThread(NULL,0,Fun2Proc,NULL,0,NULL);
        CloseHandle(hThread1);
        CloseHandle(hThread2);
    
        //创建互斥对象
        hMutex=CreateMutex(NULL,TRUE,"tickets");
        if (hMutex)
        {
            if (ERROR_ALREADY_EXISTS==GetLastError())
            {
                cout<<"only one instance can run!"<<endl;
                return;
            }
        }
        WaitForSingleObject(hMutex,INFINITE);
        ReleaseMutex(hMutex);
        ReleaseMutex(hMutex);
        
        Sleep(4000);
    }
    //线程1的入口函数
    DWORD WINAPI Fun1Proc(LPVOID lpParameter)//thread data
    {
        while (true)
        {
            ReleaseMutex(hMutex);
            WaitForSingleObject(hMutex,INFINITE);
            if (tickets>0)
            {
                Sleep(1);
                cout<<"thread1 sell ticket :"<<tickets--<<endl;
            }
            else
                break;
            ReleaseMutex(hMutex);
        }
    
        return 0;
    }
    //线程2的入口函数
    DWORD WINAPI Fun2Proc(LPVOID lpParameter)//thread data
    {
        while (true)
        {
            ReleaseMutex(hMutex);
            WaitForSingleObject(hMutex,INFINITE);
            if (tickets>0)
            {
                Sleep(1);
                cout<<"thread2 sell ticket :"<<tickets--<<endl;
            }
            else
                break;
            ReleaseMutex(hMutex);
        }
        
        return 0;
    }
    
  • 相关阅读:
    cogs 775. 山海经
    [HZOI 2016][Tyvj 1729]文艺平衡树 这道题我真是哭了,调了一下午,一晚上
    几种平衡树
    bzoj1124 [POI2008]枪战Maf
    [Usaco2007 Open]Fliptile 翻格子游戏
    团队冲刺08
    团队冲刺07
    团队冲刺06
    团队冲刺05
    团队冲刺04
  • 原文地址:https://www.cnblogs.com/Allen-rg/p/6955773.html
Copyright © 2011-2022 走看看