zoukankan      html  css  js  c++  java
  • WIN32生产消费经典同步但是以消耗时间为代价

    // Event0616.cpp : Defines the entry point for the console application.
    //
    
    #include "stdafx.h"
    #include <WINDOWS.H>
    HANDLE hEvent;
    HANDLE hMutex;
    DWORD dwM = 10;
    DWORD dSignal = 0;
    DWORD WINAPI ThreadPro1(LPVOID lpParameter)
    {
        for (int i =0; i < dwM; i++)
        {
            if (dSignal == 0)
            {
                WaitForSingleObject(hMutex,INFINITE);
                dSignal = 1;
                DWORD CurrentID = GetCurrentThreadId();
                printf("线程%d--生产了--%d件--产品!\n",CurrentID,dSignal);
            } 
            else
            {
                i--;
            }
            ReleaseMutex(hMutex);
        }
        return 0;
    }
    
    DWORD WINAPI ThreadPro2(LPVOID lpParameter)
    {
        for (int i =0; i < dwM; i++)
        {
            if (dSignal == 1)
            {
                WaitForSingleObject(hMutex,INFINITE);
                dSignal = 0;
                DWORD CurrentID = GetCurrentThreadId();
                printf("线程%d--消费了--%d件--产品!\n",CurrentID,dSignal);
            } 
            else
            {
                i--;
            }
            ReleaseMutex(hMutex);
        }
        return 0;
    }
    int main(int argc, char* argv[])
    {
        //1.安全属性 2.FALSE通知/TRUE互斥 3.初始有无信号TRUE有/FALSE没有 4.名字
        //hEvent = CreateEvent(NULL,FALSE,FALSE,NULL);
    
        hMutex = CreateMutex(NULL,FALSE,NULL);
        
        HANDLE hThead[2];
        hThead[0] = CreateThread(NULL,0,ThreadPro1,NULL,0,NULL);
        hThead[1] = CreateThread(NULL,0,ThreadPro2,NULL,0,NULL);
        
        //SetEvent(hEvent);
        
        WaitForMultipleObjects(sizeof(hThead),hThead,TRUE,INFINITE);
        
        CloseHandle(hThead[0]);
        CloseHandle(hThead[1]);
        CloseHandle(hEvent);
        
        //printf("Hello World!\n");
        getchar();
        return 0;
    }
  • 相关阅读:
    hdu 1998 奇数阶魔方(找规律+模拟)
    巧用百度Site App新组件为企业官网打造移动站
    POJ 1276 Cash Machine
    Unity3D中使用MiniJson解析json的例子
    设计模式读书笔记-----单例模式
    android 常用资料
    Objective-C之run loop详解
    icon 图标下载
    揭开Html 标签的面纱,忘不了的html .
    12157
  • 原文地址:https://www.cnblogs.com/ganxiang/p/13143904.html
Copyright © 2011-2022 走看看