1.completion(补充?完成量?)
一个执行路径等待另一个执行路径完成某事。可用于解决多处理器上发生的一种微妙的竞争条件。类似于线程同步中的条件变量,一个线程在pthread_cond_wait()上等待,另一个线程通过pthread_cond_signal()或pthread_cond_broadcast()唤醒等待的一方。当然使用的环境是绝然不同的。
2.linux内核中的completion
定义:
struct completion comple;
初始化:
init_completion(&comple)
DECLARE_COMPLETION(comple)
等待
wait_for_completion(struct competion *comple)
唤醒
complete(struct completion *comple)
//唤醒一个等待的执行单元
complete_all(struct completion *comple) //唤醒全部等待同一个的执行单元