1、在模块初始化时,可以进行线程的创建。使用下面的函数和宏定义:

2、创建线程具体过程,示例如下:
static struct task_struct *test_task;
接下图内容。

3、在线程函数里,完成所需的业务逻辑工作。主要框架如下所示:
int threadfunc(void *data){
…
接下图内容:

4、在模块卸载时,可以结束线程的运行。使用下面的函数:
int kthread_stop(struct task_struct *k);
例如:

5、总结:
1、创建线程;
2、利用线程函数,完成所需业务逻辑;
3、结束线程。