博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
迅雷笔试题
阅读量:5074 次
发布时间:2019-06-12

本文共 1619 字,大约阅读时间需要 5 分钟。

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

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

  

转载于:https://www.cnblogs.com/lzmfywz/archive/2013/05/26/3099758.html

你可能感兴趣的文章
网卡流量检测.py
查看>>
poj1981 Circle and Points 单位圆覆盖问题
查看>>
POP的Stroke动画
查看>>
SQL语句在查询分析器中可以执行,代码中不能执行
查看>>
yii 1.x 添加 rules 验证url数组
查看>>
html+css 布局篇
查看>>
SQL优化
查看>>
用C语言操纵Mysql
查看>>
轻松学MVC4.0–6 MVC的执行流程
查看>>
redis集群如何清理前缀相同的key
查看>>
Python 集合(Set)、字典(Dictionary)
查看>>
获取元素
查看>>
proxy写监听方法,实现响应式
查看>>
第一阶段冲刺06
查看>>
十个免费的 Web 压力测试工具
查看>>
EOS生产区块:解析插件producer_plugin
查看>>
mysql重置密码
查看>>
jQuery轮 播的封装
查看>>
一天一道算法题--5.30---递归
查看>>
JS取得绝对路径
查看>>