开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上,要求输出结果必须按ABC的顺序显示:ABCABC

此页面是否是列表页或首页?未找到合适正文内容。

开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上,要求输出结果必须按ABC的顺序显示:ABCABC

标签:aseeveroccti结果oop输出开启unsigned

1 #include <stdio.h>
2 #include <process.h>
3 #include <windows.h>
4
5 //线程个数
6 const int THREAD_NUM = 3;
7
8 //循环次数
9 const int LOOP = 10;
10
11 //互斥事件
12 HANDLE g_hThreadEvent[THREAD_NUM];//子线程同步事件
13 HANDLE g_Semaphore; //主线程与子线程同步
14 //volatile int g_Count = 0;
15 int g_Count = 0;
16
17 unsigned int __stdcall ThreadFunction(void *pPM)
18 {
19 int num = *(int*)pPM;
20 ReleaseSemaphore(g_Semaphore, 1, NULL); //信号量++
21
22 for (int i = 0; i < LOOP; i++)
23 {
24 WaitForSingleObject(g_hThreadEvent[num], INFINITE);
25 //InterlockedIncrement((LPLONG)&g_Count);
26 g_Count++;
27
28 printf(\”第%d次 线程ID:%3d,线程打印:%c\\n \”, g_Count, GetCurrentThreadId(), num + ‘A‘);
29
30 SetEvent(g_hThreadEvent[(num + 1) % THREAD_NUM]);
31 }
32
33 return 0;
34 }
35
36
37 int main(void)
38 {
39 int

作者: 安兔兔

为您推荐

返回顶部