workqueue,中文称其为工作队列,是一个用于创建内核线程的接口,通过它创建的内核线程来执行内核其他模块排列到队列里的工作,创建的内核线程被称为工作者线程。要理解工作队列的实现,重点在于理解相关的三个数据结构的含义及关系。
1 表示工作队列类型的数据结构:struct workqueue_struct
- /*
- * The externally visible workqueue abstraction is an array of
- * per-CPU workqueues:
- */
- struct workqueue_struct {
- struct cpu_workqueue_struct *cpu_wq;
- struct list_head list; /*连接工作队列类型的链表