【Sleep、SleepEx】Sleep和 SleepEx函数
来源:互联网 发布:专升本远程网络教育 编辑:程序博客网 时间:2024/06/08 14:15
【转自:http://blog.sina.com.cn/s/blog_4c0cb1c001019amf.html】
Sleep和 SleepEx函数的功能是在指定的执行时间内中止所在线程的执行。
SleepEx扩展了Sleep的功能,在最短超时时间间隔已到的情况下恢复线程执行外,在以下两种情况下发生时也可以恢复执行:I/O完成回调函数被调用、异步过程调用(APC)被安排进入线程中。
Sleep函数原型:
VOID WINAPI Sleep(
dwMilliseconds: 指定线程挂起最短时间间隔,以ms为单位。如设为常数INFINITE,表示将一个线程永久性的催眠
返回值:无。
SleepEx函数原型:
DWORD WINAPI SleepEx(
参数:
dwMilliseconds: 指定线程挂起最短时间间隔,以ms为单位,时间一到不管后面参数如何都会返回,如设为常数INFINITE,表示将一个线程永久性的催眠
bAlertable: 设置为FALSE,那么,在线程挂起期间不会响应。即使一个I/O完成回调函数被调用或有新的APC排进入,他们使函数返回,也不会被执行。//若是 True, 只要有 APC 函数申请, SleepEx 不管第一个参数如何都会把 APC 推入队列并随 APC 函数一起返回.//注意: SetWaitableTimer 和 SleepEx 必须在同一个线程才可以.
如用一个ReadFileEx 或 WriteFileEx函数调用初始化了一个异步I/O传输,而且我们希望函数返回,以便由那些函数指定的I/O结束例程能正常执行,就设为TRUE。
返回值:
APC是内核的一种软中断性质的东西,后面那个参数应该是这个意思,如果是false,就算有APC被插入,也要等到等待的时间到了,SleepEX才退出,如果是false,那只要有新的APC被插入了,SleepEx就马上返回了。 其实Windows的内核中Sleep就简单地理解就是线程挂在那里多少时间,不对这个线程调度。CPU的时间片都分配到其他线程中,除非等待时间到了,再继续调度和分配时间片。APC就相当于一个额外的调度。
阅读全文
0 0
- 【Sleep、SleepEx】Sleep和 SleepEx函数
- Sleep、SleepEx
- SleepEx
- sleep函数,sleep(5);
- Sleep()和sleep()
- 函数:sleep()
- sleep函数
- Sleep函数
- sleep 函数
- Sleep( )函数
- Sleep函数
- Sleep函数
- sleep函数
- sleep函数
- 函数 sleep()
- Sleep()函数
- sleep()函数
- sleep 函数
- C#敏感词过滤算法实现
- 分块 区间第k小
- HTML5热点 area自适应 jq
- 虚拟机加载时机
- C++类的成员函数(在类外定义成员函数、inline成员函数)
- 【Sleep、SleepEx】Sleep和 SleepEx函数
- CSU 1812 两个凸多边形面积交
- SURF特征提取分析(一)
- 最新鲜最详细的Android SDK下载安装及配置教程
- vue中监听input只能输入数字及英文或者其他情况
- python--Undefined variable from import error
- Java Web 细节知识
- python实现单例模式
- 分数矩阵