摘要:
上一回主要介绍了使用信号量好处理竞态问题。有时候,驱动会碰见这种问题,就是一个线程在运行时,需要等待另外一个线程完成某个动作才能继续。这种情况跟竞态还是有点区别的,说不太清楚。当然这种情形可以用信号量来达到效果,但是这种方法有很多的缺点(对于这种特殊的情况来说)。于是内核就提供了一个全新的接口来专门处理这种情况。Completion(定义在<linux/completion.h>中),正如它的名字,它的作用在于让一个线程告诉另一个线程它完成了某项工作。跟信号量得使用一样,它可以通俗的理解为三个主要部分:初始化,申请和释放。初始化的代码:1 DECLARE_COMPLETION(my 阅读全文
posted @ 2011-08-08 20:49
自由泳的青蛙
阅读(567)
评论(0)
推荐(1)

浙公网安备 33010602011771号