目录
一、什么是workqueue(工作队列)
Linux中的Workqueue机制是为了简化掉内核线程的创建,通过调用workqueue的接口就能创建内核线程。并且可以根据当前系统CPU的个数创建线程的数量,使得线程处理的事务能够并行化。workqueue是内核中实现简单线程而有效的机制,方便了用户的编程;
工作队列(workqueue)是一种能将工作推后执行的形式。工作队列可以把工作推后,交由一个内核线程去执行,也就是说工作队列可以在进程上下文中运行。最重要的就是工作队列允许被重新调度甚至是睡眠;
二、工作队列的定义
1、工作队列结构体
定义头文件:kernel\include\linux\workqueue.h
struct workqueue_struct
struct work_struct
这里定义两个相关结构体:
struct workqueue_struct 定义工作队列结构体
struct work_struct 定义工作结构体
2、创建工作队列函数
创建工作队列需要使用到宏定义:
#define create_wor