zoukankan      html  css  js  c++  java
  • 三个线程打印ABC10次,ABCABCABC....

    // ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
    //
    #include "stdafx.h"
    #include <iostream>
    #include "windows.h"
    #include<string>
    
    using namespace std;
    
    HANDLE hEventA;
    HANDLE hEventB;
    HANDLE hEventC;
    
    DWORD WINAPI funproc(LPVOID lpparentet)
    {
        string  s = (char * )lpparentet;
        int count = 0;
    
        string sA = "A";
        string sB = "B";
        string sC = "C";
        
        while (count < 10)
        {
            Sleep(100);
            if (sA.compare(s)==0)
            {
                DWORD dwRet = WaitForSingleObject(hEventA, INFINITE);
                if (dwRet == WAIT_OBJECT_0)
                {
                    printf("A");
                    count++;
                    SetEvent(hEventB);
                }
            }
    
            if (sB.compare(s) == 0)
            {
                DWORD dwRet = WaitForSingleObject(hEventB, INFINITE);
                if (dwRet == WAIT_OBJECT_0)
                {
                    printf("B");
                    count++;
                    SetEvent(hEventC);
                }
            }
    
            if (sC.compare(s) == 0)
            {
                DWORD dwRet = WaitForSingleObject(hEventC, INFINITE);
                if (dwRet == WAIT_OBJECT_0)
                {
                    printf("C");
                    count++;
                    SetEvent(hEventA);
                }
            }
        }
    
        return 0;
    }
    
    int main()
    {
        hEventA = CreateEvent(NULL, false, true, NULL);
        hEventB = CreateEvent(NULL, false, false, NULL);
        hEventC = CreateEvent(NULL, false, false, NULL);
    
        HANDLE hThreadA = CreateThread(NULL, 0, funproc, "A", 0, NULL);
        HANDLE hThreadB = CreateThread(NULL, 0, funproc, "B", 0, NULL);
        HANDLE hThreadC = CreateThread(NULL, 0, funproc, "C", 0, NULL);
    
        Sleep(10000);
    
    
        return 0;
    }
  • 相关阅读:
    双端口SRAM中读干扰问题
    工业计算内存模块专用MRAM存储器-MR4A16B
    Java学习日报7.26
    Java学习日报7.25
    Java学习日报7.24
    Java学习日报7.23
    Java学习日报7.22
    Java学习日报7.21
    Java学习日报7.20
    Java学习日报7.19
  • 原文地址:https://www.cnblogs.com/liufei1983/p/7121820.html
Copyright © 2011-2022 走看看