1、定时数据结构
struct work_struct work;
struct workqueue_struct *wq;
2、编写要在工作队列中被调用的函数,函数原形如下:
typedef void (*work_func_t)(struct work_struct *work);
3、创建一个专用的内核线程来执行提交到工作队列中的函数
wq = create_singlethread_workqueue(const char *name);
4、初始化数据结构
INIT_WORK(struct work_struct *work, work_func_t func);
5、将任务提交到工作队列
queue_work(struct workqueue_struct *wq, struct wor_struct *work);
6、在结束对工作队列的使用后,释放资源
void destory_workqueue(struct workqueue_struct *wq);
其中,第6项不是必须的,根据实际情景选择是否使用。
本文介绍了Linux内核中工作队列机制的基本概念及使用方法,包括定时数据结构定义、工作函数编写、工作队列创建与初始化、任务提交及资源释放等关键步骤。
263

被折叠的 条评论
为什么被折叠?



