工作队列(workqueue)的Linux内核中的定义的用来处理不是很紧急事件的回调方式处理方法。
在workqueue的初始化函数中, 定义了一个针对内核中所有线程可用的事件工作队列, 其他内核线程建立的事件工作结构就都挂接到该队列:void init_workqueues(void)
{ // 每个CPU的工作队列struct cpu_workqueue_struct *cwq = per_cpu_ptr(wq-cpu_wq, cpu);struct task_struct *p;spin_lock_init(cwq-lock);// 初始化cwq-wq = wq;cwq-thread = NULL;cwq-insert_sequence = 0;cwq-remove_sequence = 0;INIT_LIST_HEAD(cwq-worklist);// 初始化等待队列more_work, 该队列处理要执行的工作结构init_waitqueue_head(cwq-more_work);// 初始化等待队列work_done, 该队列处理执行完的工作结构init_waitqueue_head(cwq-work_done);// 建立内核线程work_thread if (is_single_threaded(wq))

