多线程之常用api
来源:互联网 发布:yessuperstore淘宝 编辑:程序博客网 时间:2024/06/05 08:26
第一个 CreateThread
函数功能:创建线程
函数原型:
HANDLEWINAPICreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter, DWORD dwCreationFlags, LPDWORD lpThreadId);
函数说明:
第一个参数表示线程内核对象的安全属性,一般传入NULL表示使用默认设置。
第二个参数表示线程栈空间大小。传入0表示使用默认大小(1MB)。
第三个参数表示新线程所执行的线程函数地址,多个线程可以使用同一个函数地址。
第四个参数是传给线程函数的参数。
第五个参数指定额外的标志来控制线程的创建,为0表示线程创建之后立即就可以进行调度,如果为CREATE_SUSPENDED则表示线程创建后暂停运行,这样它就无法调度,直到调用ResumeThread()。
第六个参数将返回线程的ID号,传入NULL表示不需要返回该线程ID号。
函数返回值:
成功返回新线程的句柄,失败返回NULL。
第二个 WaitForSingleObject
函数功能:等待函数 – 使线程进入等待状态,直到指定的内核对象被触发。
函数原形:
DWORDWINAPIWaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds);
函数说明:
第一个参数为要等待的内核对象。
第二个参数为最长等待的时间,以毫秒为单位,如传入5000就表示5秒,传入0就立即返回,传入INFINITE表示无限等待。
因为线程的句柄在线程运行时是未触发的,线程结束运行,句柄处于触发状态。所以可以用WaitForSingleObject()来等待一个线程结束运行。
函数返回值:
在指定的时间内对象被触发,函数返回WAIT_OBJECT_0。超过最长等待时间对象仍未被触发返回WAIT_TIMEOUT。传入参数有错误将返回WAIT_FAILED
第一个 WaitForMultipleObjects
函数功能:等待函数,可以等待多个线程
函数原型:
DWORD WaitForMultipleObjects( DWORD nCount, // number of handles in the handle array CONST HANDLE *lpHandles, // pointer to the object-handle array BOOL fWaitAll, // wait flag DWORD dwMilliseconds // time-out interval in milliseconds);函数说明:
nCount 句柄的数量 最大值为MAXIMUM_WAIT_OBJECTS(64)
HANDLE 句柄数组的指针。
HANDLE 类型可以为(Event,Mutex,Process,Thread,Semaphore )数组
BOOL bWaitAll 等待的类型,如果为TRUE 则等待所有信号量有效在往下执行,FALSE 当有其中一个信号量有效时就向下执行
DWORD dwMilliseconds 超时时间 超时后向执行。 如果为WSA_INFINITE 永不超时。如果没有信号量就会在这死等。
举个例子:当 bWaitAll参数为FALSE 可以等待其中之一的事件
- 多线程之常用api
- 多线程Thread类常用api
- BOM之常用API
- Java之常用API
- J2SE之常用API
- 多线程之常用函数
- 多线程编程概念及常用API
- CKEditor之常用API一览
- java之常用API(二)
- Zookeeper之常用API详解
- 多线程之线程常用操作方法
- Java多线程之常用方法
- JAVA多线程之常用方法
- 玩转java多线程学习篇四 Thread类的常用API之currentThread,isAlive,sleep,interrupt,isInterrupted,stop
- 黑马程序员-JAVA中多线程常用的API
- Win32 API 常用函数之二
- API之常用的重要函数
- MySQL之常用C API详述
- 用python自动发微博
- 勾股定理一日一证连载13
- 随笔:写给我深爱的球队
- JavaScript Array 原型方法 大盘点
- 多线程之_beginThreadex的用法
- 多线程之常用api
- hdu 1233 还是畅通工程(最小生成树,prim,kruskal)
- R语言绘制均线图SMA的交叉点
- Activity的生命周期和启动模式详解
- 帧动画使用详解
- 为什么写博客
- 更新software sources时异常停止后如何修复
- HDU2502 月之数
- 补间动画使用详解