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、结束线程。