当前位置:首页 > 嵌入式 > 嵌入式软件
[导读] 等待函数是使一个线程自愿进入等待状态,直到指定的内核对象被出发为止。注意如果线程在调用的一个等待函数的时候,相应的内核对象已经处于触发状态,那么线程是不会进入等

 等待函数是使一个线程自愿进入等待状态,直到指定的内核对象被出发为止。注意如果线程在调用的一个等待函数的时候,相应的内核对象已经处于触发状态,那么线程是不会进入等待状态的。等待函数经常用来阻塞线程来进行同步,在IST中用到来等待相应的中断事件。常用的等待函数是:WaitForSingleObject()。函数原型如下:

DWORD WaitForSingleObject(

HANDLE hObject,

DWORD dwMilliseconds);

第一个参数hObject代表要等带的内核对象,第二个参数dwMilliseconds代表要等待的毫秒数。如果到等待的时间到达,内核对象还没有被触发,则函数返回等待超时。

在wince中可以用来被等待的内核对象有:进程,线程,作业,文件以及控制台的标准输入流/输出流/错误流,事件,可等待的计时器,信号量,互斥量。其中事件,可等待的计时器,信号量以及互斥量是windows提供的专门用来线程同步的内核对象。

对第二个参数经常传递INFINITE,就是0xFFFFFFFF(-1)。当传递INFINITE的时候代表如果等待的内核对象永远不被触发,那么调用的线程就永远不会被唤醒,它会一直等待下去。当然在等待的过程中并没有占用CPU。

函数的返回值代表为什么调用线程又能够继续执行(线程进入就绪状态)。

WAIT_OBJECT_0:代表等待的内核对象被触发。

WAIT_TIMEOUT:代表等待超时。

WAIT_FAILED:代表传入的无效的参数,这时调用GetLastError可以获得更为详细的信息。

WaitForSingleObject是等带一个内核对象被触发。而WaitForMultipleObjects允许调用线程同时检查多个内核对象的触发状态,其函数原型如下:

DWORD WaitForMultipleObjects(

DWORD dwCount,

CONST HANDLE * phObjects,

BOOL bWaitAll,

DWORD dwMilliseconds);

dwCount表示我们要检测的内核对象的个数。这个值必须在1-MAXIMUM_WAIT_OBJECTS之间。phObjects是一个指针,指向一个内核对象句柄的数组。bWaitALL为TRUE时表示要等所有的内核对象都被触发,为FALSE时表示所等待的内核对象中有一个被触发时,线程就会被唤醒。最后一个参数与WaitForSingleObject中的那个一样。

WaitForMultipleObjects函数的返回值告诉调用函数为什么它能过继续运行。可以返回的值包括WAIT_FAILED和WAIT_TIMEOUT。

如果bWaitAll为True而且所有的对象都被触发了,那么返回值是WAIT_OBJECT_0.

如果bWaitAll为False,那么只要任何一个对象被触发,函数就会立刻返回。这时返回值是WAIT_OBJECT_0和WAIT_OBJECT_0+dwCount-1中间的任何一个值,即我们在第二个参数中传递给函数的句柄数组的一个索引,用来告诉我们被触发的是哪个对象。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

4月26日,MediaTek宣布推出天玑汽车平台新品,以先进的生成式AI技术赋能智能​汽车的体验革新。

关键字: AI 汽车电子

2024年4月26日,中国深圳——2024年是OPPO品牌成立20周年。在2024年世界知识产权日,OPPO正式发布首份《OPPO创新与知识产权白皮书》,系统性地展现了OPPO 20载技术创新和知识产权保护成果。

关键字: OPPO 知识产权 AI

「人工智能浪潮下的中国制造」论坛顺利召开 上海2024年4月17日 /美通社/ -- 4月12日,由百年名校法国里昂商学院主办,斯巴诺萨设计承办,福州东湖数字小镇,福建亚太合会数字经济专委会协办的"中法建交6...

关键字: 微软 雷诺 AI 中国制造业

根据调研机构Gartner的预测,由于竞相投资AI以及IT设备更换周期的到来,全球2024年的IT支出将增长8%。

关键字: GenAI IT AI

据报道,日本电信巨头软银集团将在未来两年投资1500亿日元(9.6亿美元)升级其计算设施,该计划包括大量采购英伟达GPU。

关键字: 软银 英伟达 GPU AI

4月24日消息,特斯拉CEO马斯克在最近的财报电话会议上透露,特斯拉的Optimus人形机器人预计将在今年底前具备执行“有用的”工厂任务的能力,并有望在2025年底前推向市场。这一消息引发了业界和公众的广泛关注。

关键字: 马斯克 AI 特斯拉 GPU

眼下,人工智能不仅能辅助科学研究与艺术创作,还能实现自动驾驶、打造“无人农场”和“黑灯工厂”,成为解锁新质生产力的关键钥匙。

关键字: 人工智能 AI 无人农场

Arm CPU正在从根本上推动AI变革,并造福地球。Arm架构是未来AI计算的基石。​

关键字: ARM AI

Apr. 23, 2024 ---- 随着节能成为AI推理服务器(AI Inference Server)优先考量,北美客户扩大存储产品订单,带动QLC Enterprise SSD需求开始攀升。然而,目前仅Solidi...

关键字: SSD AI 服务器

深圳2024年4月23日 /美通社/ -- 全球AI解决方案与工业级存储领导品牌宜鼎国际 (Innodisk)持续深化边缘AI布局,今(23)日发表全球首创"MIPI over Type-C"独家技术,让旗下嵌入式相机模...

关键字: AI 嵌入式 相机
关闭
关闭