zoukankan      html  css  js  c++  java
  • 迅雷笔试题

      编写一个程序,开启3个线程,这3个线程的ID分别为ABC,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC.依次递推。

    #include <stdio.h>
    #include <stdlib.h>
    #include <iostream>  
    #include <string>  
    #include <stack>  
    #include <windows.h>  
    #include <process.h>  
    using namespace std;  
    
    HANDLE hEventA;
    HANDLE hEventB;
    HANDLE hEventC;
    
    HANDLE hThreadA;
    HANDLE hThreadB;
    HANDLE hThreadC;
    
    UINT __stdcall ThreadA(LPVOID lparam)
    {
    	int n = 10;
    	while(n--)
    	{
    		WaitForSingleObject(hEventA, INFINITE);
    		printf("A");
    		ResetEvent(hEventA);
    		SetEvent(hEventB);
    	}
    	return 1;
    }
    
    UINT __stdcall ThreadB(LPVOID lparam)
    {
    	int n = 10;
    	while(n--)
    	{
    		WaitForSingleObject(hEventB, INFINITE);
    		printf("B");
    		ResetEvent(hEventB);
    		SetEvent(hEventC);
    	}
    	return 1;
    }
    
    UINT __stdcall ThreadC(LPVOID lparam)
    {
    	int n = 10;
    	while(n--)
    	{
    		WaitForSingleObject(hEventC, INFINITE);
    		printf("C\n");
    		ResetEvent(hEventC);
    		SetEvent(hEventA);
    	}
    	return 1;
    }
    
    int main()  
    {  
    	hEventA = CreateEvent(NULL, TRUE, FALSE, NULL);
    	hEventB = CreateEvent(NULL, TRUE, FALSE, NULL);
    	hEventC = CreateEvent(NULL, TRUE, FALSE, NULL);
    	SetEvent(hEventA);
    	hThreadA = (HANDLE)_beginthreadex(NULL, 0, ThreadA, NULL, 0, NULL);
    	hThreadB = (HANDLE)_beginthreadex(NULL, 0, ThreadB, NULL, 0, NULL);
    	hThreadC = (HANDLE)_beginthreadex(NULL, 0, ThreadC, NULL, 0, NULL);
    	WaitForSingleObject(hThreadA, INFINITE);
    	WaitForSingleObject(hThreadB, INFINITE);
    	WaitForSingleObject(hThreadC, INFINITE);
    	CloseHandle(hThreadA);
    	CloseHandle(hThreadB);
    	CloseHandle(hThreadC);
    	CloseHandle(hEventA);
    	CloseHandle(hEventB);
    	CloseHandle(hEventC);
    	return 0;  
    }  
    

      

  • 相关阅读:
    P2660 zzc 种田
    ie发[e]的单词,ea发[e]的单词,e发i:的单词
    从员工表和部门表联合查询的不同方式看CBO对不同SQL的优化
    Delete..In.. 删除语句的优化再次探讨
    【Vue】第一个Vue例子
    再度思索:从配送表中选出订单号和配送者相同时的最新记录
    datx 编译打包命令
    kube-proxy iptables 模式源码分析
    kube-proxy ipvs 模式源码分析
    go json 反解析接口
  • 原文地址:https://www.cnblogs.com/lzmfywz/p/3099758.html
Copyright © 2011-2022 走看看