当前位置: 技术问答>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者有什么区别呢?
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 是否为真,如果不为真,还要重新进入睡眠。
等待一个 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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。