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;
    }
    
  • 相关阅读:
    关于浮动清除的一些小感悟,4种方法清除浮动
    6号css学习小记
    pexpect-pxssh-登陆Linux-执行命令
    chroot命令
    Loadrunner11点击录制脚本无响应,IE页面弹不出——解决方案汇总
    JAVA实验五(网络编程)
    Java实验三
    JAVA实验二(面向对象)
    JAVA实验一
    Tfs链接错误解决方案
  • 原文地址:https://www.cnblogs.com/Allen-rg/p/6955773.html
Copyright © 2011-2022 走看看