#include <iostream> #include <windows.h> #include <stdio.h> using namespace std; HANDLE gEvent; DWORD WINAPI FuncA(LPVOID lpParameter) {     for(int i = 0;i<5;i++)     {         WaitForSingleObject(gEvent,INFINITE);         cout << "A";         Sleep(20);         SetEvent(gEvent);     }     return 0; } DWORD WINAPI FuncB(LPVOID lpParameter) {     for(int i = 0;i<5;i++)     {         WaitForSingleObject(gEvent,INFINITE);         cout << "B";         Sleep(20);         SetEvent(gEvent);     }     return 0; } int main() {     gEvent =CreateEvent(NULL,false,true,NULL); //,无信号 手动置位,未激发状态     HANDLE hThread1 =CreateThread(NULL,0,FuncA,NULL,CREATE_SUSPENDED,NULL);     ResumeThread(hThread1);     HANDLE hThread2 =CreateThread(NULL,0,FuncB,NULL,CREATE_SUSPENDED,NULL);     Sleep(0);  // 让线程1先执行     ResumeThread(hThread2);     Sleep(2000);     return 0; } 这个试试吧,我在本地跑了10次能打印ABABAB....,但是如果是打印ABCABCABC我不知道该怎么改了
点赞 评论

相关推荐

牛客网
牛客企业服务