完成量(Completion)
更多资料下载,冲击月薪过万,一线经验工程师录制,
干货满满的嵌入式视频教程,请点击淘宝店:wanglitao.taobao.com
核心原理
完成量用于线程间同步,实现 “一个线程等待另一个线程完成某任务后再继续执行” 的场景,本质是一种轻量级的睡眠同步机制。关键特性
一对一 / 一对多同步:支持一个线程等待,或多个线程等待同一个完成事件。
适用场景:进程上下文、异步任务同步(如设备初始化完成后通知应用线程)。核心接口
#include <linux/completion.h>
// 定义并初始化完成量
struct completion comp;
init_completion(&comp);
// 静态初始化
DECLARE_COMPLETION(comp);
// 等待完成量被触发
wait_for_completion(&comp);
// 触发完成量(唤醒一个等待线程)
complete(&comp);
// 触发完成量(唤醒所有等待线程)
complete_all(&comp);
驱动开发核心理论,Linux内核开发入门实战视频教程:《Linux内核编程》,具有一线芯片原厂开发经验的驱动工程师录制,详情点击:王利涛老师个人淘宝店:Linux内核编程