完成量(Completion)

更多资料下载,冲击月薪过万,一线经验工程师录制, 干货满满的嵌入式视频教程,请点击淘宝店:wanglitao.taobao.com
  1. 核心原理
    完成量用于线程间同步,实现 “一个线程等待另一个线程完成某任务后再继续执行” 的场景,本质是一种轻量级的睡眠同步机制。

  2. 关键特性
    一对一 / 一对多同步:支持一个线程等待,或多个线程等待同一个完成事件。
    适用场景:进程上下文、异步任务同步(如设备初始化完成后通知应用线程)。

  3. 核心接口

#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内核编程