MFC_事件对象_打印字符串_2线程_同步
来源:互联网 发布:java书籍推荐 知乎 编辑:程序博客网 时间:2024/06/06 12:42
#include <afxmt.h>#include <stdio.h>DWORD WINAPI myfun1(LPVOID lpParameter);//声明线程函数DWORD WINAPI myfun2(LPVOID lpParameter);CEvent event(false,false,NULL,NULL);//将事件对象定义为全局变量int a=0;//定义全局变量aint main(){HANDLE h1,h2;//定义线程句柄event.SetEvent();h1=::CreateThread(NULL,0,myfun1,NULL,0,NULL);//创建线程1printf("线程1开始运行!\r\n");h2=::CreateThread(NULL,0,myfun2,NULL,0,NULL);//创建线程2printf("线程2开始运行!\r\n");::CloseHandle(h1);//关闭线程句柄对象::CloseHandle(h2);::Sleep(100000);//程序睡眠10秒return 0;}DWORD WINAPI myfun1(LPVOID lpParameter) //线程函数1{while(1){::WaitForSingleObject(event.m_hObject,INFINITE);//请求事件对象//event.ResetEvent();//设置事件对象为无信号状态if(a<10000){a+=1;//变量自加::Sleep(1000);//线程睡眠1秒printf("线程1:%d\r\n",a);//输出变量event.SetEvent();//设置事件对象为有信号状态}else{event.SetEvent();//设置事件对象为有信号状态break;//跳出循环}} return 0;//线程}DWORD WINAPI myfun2(LPVOID lpParameter) //线程函数2{while(1){::WaitForSingleObject(event.m_hObject,INFINITE);//请求事件对象//event.ResetEvent();//设置事件对象为无信号状态if(a<10000){a+=1;::Sleep(1000);printf("线程2:%d\r\n",a);//输出变量event.SetEvent();}else{event.SetEvent();//设置事件对象为有信号状态break;//跳出循环}} return 0;//线程正常退出}
阅读全文
0 0
- MFC_事件对象_打印字符串_2线程_同步
- MFC_互斥对象_打印字符串_2线程_同步
- 事件对象_打印字符串_2线程_同步
- MFC_临界区_打印字符串_2线程
- 互斥对象_打印字符串_2线程_同步
- 临界区_打印字符串_2线程
- 第九章 Java多线程机制 05_线程同步_2
- 05_线程同步
- 多线程_线程同步
- [Java]_[线程同步]
- 多线程编程5 线程同步_事件CEvent
- 11.6 线程_线程同步
- 创建线程打印字符串_2个线程打印
- 互斥体_创建4线程_打印
- 线程_多线程_同步机制
- 线程同步:事件对象
- Linux_5.3_线程同步
- Java笔记_线程-同步
- tensorflow 单机多GPU mnist实例
- visual studio2013 项目属性--配置管理器 win32 和 x64的切换需要注意的地方
- mysql导出表数据
- Spring Boot (二):Web 综合开发
- Mob短信验证
- MFC_事件对象_打印字符串_2线程_同步
- EventBus的详细使用攻略
- [破除迷信]java.util.ArrayList在foreach循环遍历时可以删除元素
- Java设计模式-策略模式
- 葵花宝典 十九 jsp动作标签和EL表达式
- FFMPEG之图片系列 --- png格式
- 使用node作为多个项目的服务器
- mysql sqlmode几个模式
- Ubuntu优盘启动盘制作教程