雪傲天1 2023-05-24 19:23 采纳率: 96.2%
浏览 36
已结题

为什么代码可以运行??


#include <windows.h>
#include <process.h>
#include<iostream>
#include<stdio.h>
#define NUM_THREAD 50
unsigned WINAPI threadInc(void* arg);
unsigned WINAPI threadDes(void* arg);
HANDLE hEvent;
int main(int argc, char* argv[])
{
    HANDLE Handles[2]{};
    int i;
    hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
       
    Handles[0] = (HANDLE)_beginthreadex(NULL, 0, threadInc, NULL, 0,
        NULL);
         
    Handles[1] = (HANDLE)_beginthreadex(NULL, 0, threadDes, NULL, 0,
                NULL);
     
    WaitForMultipleObjects(NUM_THREAD, Handles, TRUE, INFINITE);
    CloseHandle(hEvent);
    system("pause");
    return 0;
}
unsigned WINAPI threadInc(void* arg)
{
    for (int j=0;j<2;j++)
    {
        int i;
        std::cout << "我是猪" << std::endl;
        WaitForSingleObject(hEvent, INFINITE);
        for (int i = 0; i < 2; i++)
        {
            std::cout << "我是猪22" << std::endl;
        }
        SetEvent(hEvent);
    }    
    return 0;
}
unsigned WINAPI threadDes(void* arg)
{
    for (int j=0;j<2;j++)
    {
        int i;
        std::cout << "woshizhu" << std::endl;
        WaitForSingleObject(hEvent, INFINITE);
        for (int i = 0; i < 2; i++)
        {
            std::cout << "woshizhu33" << std::endl;
        }
         SetEvent(hEvent);
    }
    return 0;
}
为什么这里的代码可以执行呢?我的结果还成功输出了,我是x等字样
  • 写回答

1条回答 默认 最新

  • Huazie 优质创作者: 编程框架技术领域 2023-05-24 19:46
    关注

    这输出 很正常呀 ,你为啥认为不能输出呢?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月8日
  • 已采纳回答 5月31日
  • 创建了问题 5月24日