WaitForMultipleObjects、WaitForSingleObject、GetExitCodeThread
WaitForMultipleObjects、WaitForSingleObject、GetExitCodeThread
//
#include "stdafx.h"
#include <windows.h>
HANDLE hth[2];
DWORD WINAPI func1(LPVOID p1)
{
printf("fun1 end\n");
DWORD exitC;
GetExitCodeThread(hth[1],&exitC);
if (exitC==STILL_ACTIVE)//还在运行中
{
printf("func2 STILL_ACTIVE\n");
}
return 4;
}
DWORD WINAPI func2(LPVOID p2)
{
Sleep(1000);
DWORD exitC;
GetExitCodeThread(hth[0],&exitC);
printf("func1 exit code= %d\nfun2 end\n",exitC);
return 0;
}
int main(int argc, char* argv[])
{
DWORD thID1,thID2;
printf("Hello World!\n");
hth[0]= CreateThread(NULL,0,func1,0,0,&thID1);
hth[1]= CreateThread(NULL,0,func2,0,0,&thID2);
WaitForMultipleObjects(2,hth,true,INFINITE); //true等待所有线程结束 false 只要有一条线程结束就退出 INFINITE一直等待
//WaitForMultipleObjects(2,hth,false,10000);//INFINITE
//WaitForSingleObject(hth[1],INFINITE);
return 0;
}
转载于:https://www.cnblogs.com/ahuo/archive/2007/09/13/891459.html
WaitForMultipleObjects、WaitForSingleObject、GetExitCodeThread相关推荐
- Windows线程CreateThread、线程处理函数、SuspendThread、ResumeThread、WaitForSingleObject、WaitForMultipleObjects
Windows线程是可以执行的代码的实例.系统是以线程为单位调度程序.一个程序当中可以有多个线程,实现多任务的处理. windows线程的特点: 1.线程都具有一个ID 2.每个线程都具有自己的内存栈 ...
- CreateMutex、WaitForSingleObject、ReleaseMutex——创建互斥对象
CreateMutex CreateMutex作用是找出当前系统是否已经存在指定进程的实例.如果没有则创建一个互斥体. 互斥对象是系统内核维护的一种数据结构,它保证了对象对单个线程的访问权 互斥对象的 ...
- CreateMutex、WaitForSingleObject、ReleaseMutex
我们对线程做一些简单的同步处理,这里我们用互斥量(Mutex). 互斥量(Mutex)和二元信号量类似,资源仅允许一个线程访问.与二元信号量不同的是,信号量在整个系统中可以被任意线程获取和释放,也就是 ...
- linux 线程 waitforsingleobject,WaitForSingleObject、WaitForMulitpleObjects和SignalObjectAndWait线程同步...
WaitForSingleObject.WaitForMulitpleObjects和SignalObjectAndWait线程同步 2010-12-10 15:47 类型:生活点滴 用户模式的线程同 ...
- 线程中CreateEvent、SetEvent、WaitForSingleObject的用法
原文地址:https://www.cnblogs.com/MrYuan/p/5238749.html 首先介绍CreateEvent是创建windows事件的意思,作用主要用在判断线程退出,线程锁定方 ...
- CMutex、CCriticalSection、CSemaphore、CEvent、WaitForSingleObject 的小例子
一.CMutex CMutex mutex; mutex.Lock(); // 互斥的动作 // mutex.Unlock(); 二.CCriticalSection CCriticalSection ...
- Delphi中线程类TThread实现多线程编程2---事件、临界区、Synchronize、WaitFor……
接着上文介绍TThread. 现在开始说明 Synchronize和WaitFor 但是在介绍这两个函数之前,需要先介绍另外两个线程同步技术:事件和临界区 事件(Event) 事件(Event)与De ...
- win32下进程间通信方式之管道、邮件槽、剪切板、共享内存、消息、套接字、RPC、DDE等
#include "stdafx.h"/*32位Windows采用虚拟内存技术使每个进程虚拟4G内存,在逻辑上实现了对进程之间数据代码的分离与保护.那么相应的进程之间的通信也就有必 ...
- MFC之AfxbeginThread 线程 创建、挂起、释放、结束、退出
MFC之AfxbeginThread 线程 创建.挂起.释放.结束.退出 本文简单阐述了如何使用一个afxbeginthread创建一个线程(两种方法,使用默认设置,使用自主设置参数),以及一些如同, ...
- Google面试题—有四个线程1、2、3、4。线程1的功能就是输出1,线程2的功能就是输出2,以此类推.........现在有四个文件ABCD...
分类: windows编程 C++ 2012-10-27 19:56 3410人阅读 评论(1) 收藏 举报 有四个线程1.2.3.4.线程1的功能就是输出1,线程2的功能就是输出2,以此类推.... ...
最新文章
- 记录win10快捷键
- 一文教你快速上手PyFlink
- 显卡欺骗器状态检测及安装注意事项
- jquery不同版本冲突导致低版本功能不能用
- 17-Flutter移动电商实战-首页_楼层区域的编写
- OSGI(面向Java的动态模型系统)
- ik分词和jieba分词哪个好_Lucene.net(4.8.0) 学习问题记录五: JIEba分词和Lucene的结合,以及对分词器的思考...
- session原理总结
- Ubuntu 12.04下Pomelo开发环境搭建(转)
- python做数据排序,python 实现对数据的排序和绘图
- 机器视觉基础知识详解
- linux 默认ssh端口号,CentOS/Linux 修改默认SSH端口号
- 360浏览器显示没有网络连接到服务器地址,Win10 360浏览器提示网络连接错误错误代码102如何解决...
- 设计模式(Design Pattern,DP)
- 逻辑运算是计算机实现计算器基础,第1章__计算机的发展与运算基础.ppt
- 请解析IP地址和对应的掩码,进行分类识别。要求按照A/B/C/D/E类地址归类,不合法的地址和掩码单独归类。
- ActiveX控件:设置控件属性和方法的一种简易办法(VS2013)
- CentOS 7代理设置(Yum/cURL/Wget/Docker)
- selenium中ByChained方法
- 3.Containerd容器运行时的配置浅析与知识扩充实践
热门文章
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_2-5.开源工具的优缺点选择和抽象方法的建议...
- 阶段3 1.Mybatis_05.使用Mybatis完成CRUD_1 回顾Mybatis的环境搭建-实现查询所有功能
- 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_12_注解_概念
- 八.nginx网站服务实践应用
- 多用类型常量,少用#define预处理指令
- Nginx 反向代理解决浏览器跨域问题
- 数据结构-单链表的正向排序
- MySQL基本数据操作
- QT打包后音频不响应的问题
- Y COMBINATOR的六大强悍女人-转自应用电台