Linux内核常用API互斥与同步中完成量的相关代码是什么?
1.定义、初始化 #include <linux/completion.h>
struct completion compeltion_zj; init_completion(&compeltion_zj); DECLARE_COMPLETION(compeltion_zj); //这个宏可用来快速执行重新初始化: INIT_COMPLETION(compeltion_zj);
2.等待完成量 等待一个完成量被唤醒 void wait_for_completion(struct completion *c);
3.唤醒完成量 //前者只唤醒一个等待的执行单元 void completion(struct completion *c); //释放所有等待同意完成量的执行单元 void completion_all(struct completion *c);
完成量用于同步,实现顺序执行: 执行单元A 执行单元B struct completion com;
init_completion(&com); 代码区域c 代码区域a
wait_for_completion(&com); <---------激活------ completion(&com);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。