由于CPU要处理中断,而且中断都要求尽快执行结束,所以对于大量的程序处理都会放到下半部去执行。常用的下半部有:软中断、任务队列、工作队列等。
其中比较好用,也比较常用的是工作队列。
工作队列使用时我觉得一般会有以下几部分来共同使用。
struct workqueue_struct my_wq; //工作队列,用于通知工作者工作 struct work_struct my_work; //工作者,用于处理具体的工作任务 struct list_head my_list; //任务链表,用于存放工作任务 spinlock_t my_spin_lock; //自旋锁,用于线程间同步
由于公司里不能上传,明天再写一个具体的例子 -_-