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;
    }
    
  • 相关阅读:
    散列
    AVL树的单旋与双旋
    Ubuntu系统目录
    os x文件系统结构简介
    c语言静态局部变量
    创建J2EE 5.0工程后,JSTL不能使用解决方法
    mysql
    指针
    servlet 访问项目
    c数组
  • 原文地址:https://www.cnblogs.com/Allen-rg/p/6955773.html
Copyright © 2011-2022 走看看