1、tasklet
只需要定义三段代码
功能函数:
void my_tasklet(unsigned long data)
{
printk("enter cdd_func!\n");
}
定义cdd_tasklet 变量,绑定my_tasklet函数:
DECLARE_TASKLET(cdd_tasklet, my_tasklet, 0);
tasklet_schedule(&cdd_tasklet);//等级底半部
2、工作队列
需要定义4段代码
struct work_struct my_wq;//定义变量
INIT_WORK(&my_wq,my_wq_fuc);//初始化工作者队列并绑定函数
schedule_work(&my_wq);//登记底半部
void my_wq_fuc(struct work_struct *work)
{
printk("enter my_wq_func!\n");
}
工作队列可以休眠