编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推
来源:互联网 发布:怎样进入人工智能行业 编辑:程序博客网 时间:2024/04/27 07:03
编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推
方法 1
#include <process.h>#include <Windows.h>#include <stdio.h>#include <stdio.h>#include <stdlib.h>struct ThreadNum{char num;};int const LOOP = 10;HANDLE g_hThreadEvent[3];unsigned int __stdcall ThreadPrint(LPVOID);int main(_In_ int _Argc, char* Argv[]){struct ThreadNum TNum[3];TNum[0].num = 'A';TNum[1].num = 'B';TNum[2].num = 'C';g_hThreadEvent[0] = CreateEvent(NULL, FALSE, TRUE, NULL);g_hThreadEvent[1] = CreateEvent(NULL, FALSE, FALSE, NULL);g_hThreadEvent[2] = CreateEvent(NULL, FALSE, FALSE, NULL);enum{MAXHANDLE = 3};HANDLE handle[MAXHANDLE];handle[0] = (HANDLE)_beginthreadex(NULL, 0, ThreadPrint, (LPVOID)&TNum[0], 0, NULL);handle[1] = (HANDLE)_beginthreadex(NULL, 0, ThreadPrint, (LPVOID)&TNum[1], 0, NULL);handle[2] = (HANDLE)_beginthreadex(NULL, 0, ThreadPrint, (LPVOID)&TNum[2], 0, NULL);WaitForMultipleObjects(MAXHANDLE, handle, TRUE, INFINITE);for (int i = 0; i < MAXHANDLE; ++i){CloseHandle(handle[i]);}getchar();return 0;}unsigned int __stdcall ThreadPrint(LPVOID p){for (int i = 0 ; i < LOOP; ++i){WaitForSingleObject(g_hThreadEvent[((ThreadNum*)p)->num - 'A'], INFINITE);printf("%c, 线程ID%5d\n", ((ThreadNum*)p)->num, GetCurrentThreadId());SetEvent(g_hThreadEvent[(((ThreadNum*)p)->num - 'A' + 1)%3]);}_endthreadex(0);return 0;}
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 笔试题:编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推
- 润和面试题:开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC
- HDU 1556 Color the ball - from lanshui_Yang
- HDU 1051 Wooden Sticks(贪心算法)
- 11181 - Probability|Given
- 超强的参考资料让你的android开发如鱼得水
- IO流异常文件日志
- 编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推
- Exchange Server 2013新功能介绍
- 如何将EXCEL的多列数据叠加合并到一列
- 集团企业网站群建设发展趋势
- Myeclips Ireport 中遇到的问题-中文字重叠 url 过长 参数传值乱码
- 如何在WDM中使用xp系统的DMA用来处理数据
- EtherChannel(PAgP、LACP)基本配置
- asp.net c# 在一般处理程序中不能获取Session值
- Android - How to direct the audio data from MediaRecorder as the input of ffmpeg command via Pipe?