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;  
    }  
    

      

  • 相关阅读:
    IDEA 学习笔记之 Scala项目开发
    IDEA 学习笔记之 Java项目开发
    IDEA 学习笔记之 安装和基本配置
    MongoDB 学习笔记之 索引
    MongoDB 学习笔记之 删除数据,集合,数据库
    Shiro学习(13)RememberMe
    Shiro学习(12)与Spring集成
    Shiro学习(11)缓存机制
    Shiro学习(10)Session管理
    Shiro学习(9)JSP标签
  • 原文地址:https://www.cnblogs.com/lzmfywz/p/3099758.html
Copyright © 2011-2022 走看看