当前位置:  技术问答>linux和unix

wait_for_completion wait_event 区别

    来源: 互联网  发布时间:2016-06-13

    本文导语:  进程睡眠的2类函数 wait_for_completion wait_event wait_event是等待某个条件满足,而wait_for_completion也是等待某个条件满足是不可中断的。 但是2者有什么区别呢? | void wait_for_completion(struct completion *...

进程睡眠的2类函数
wait_for_completion wait_event
wait_event是等待某个条件满足,而wait_for_completion也是等待某个条件满足是不可中断的。

但是2者有什么区别呢?

|
void wait_for_completion(struct completion *c);
    等待一个 completion 事件发出.
void complete(struct completion *c);
void complete_all(struct completion *c);

发出一个 completion 事件. completion 唤醒, 最多, 一个等待着的线程, 而 complete_all 唤醒全部等待者.
这个只是简单的唤醒而已, 可以多个任务等待同一个 completion , 并且排队,可以一个一个唤醒,也可以全部唤醒。




void wait_event(wait_queue_head_t q, int condition);
使进程在给定队列上睡眠, 直到给定条件值为真值.
这个在唤醒之后还要比较condition 是否为真,如果不为真,还要重新进入睡眠。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3