c语言线程同步打印两个线程

一个线程打印出‘A’,另一个打印出‘B’,进行5次循环,如何得出ABABABABAB,怎么写代码啊
全部评论
条件变量加互斥量
点赞 回复
分享
发布于 2015-09-21 14:50
#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我不知道该怎么改了
点赞 回复
分享
发布于 2015-09-24 19:48
滴滴
校招火热招聘中
官网直投

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务