工作队列操作函数

----------------------------------------------------------------------------------------------------------------------------------------

进程专有工作队列

1.创建工作队列
    struct workqueue_struct *create_workqueue(const char *name);   //在这里 name 是工作队列的名字
2.工作队列任务可以在编译时或者运行时创建
    (1)编译期初始化一个工作队列任务时要用到
         DECLARE_WORK(name, void (*function)(void *), void *data);
    (2)在运行期初始化一个工作队列时要用到
         INIT_WORK(struct work_struct *work, void (*function)(void *), void *data);
3.调用来把任务(work_struct)加入到工作队列中
    int queue_work(struct workqueue_struct *queue, struct work_struct *work);
    int queue_delayed_work(struct workqueue_struct *queue, struct work_struct *work, unsigned long delay);
    //delay是为了保证至少在经过一段给定的最小延迟时间以后,工作队列中的任务才可以真正执行
-----------------------------------------------------------------------------------------------------------------------------------------

像内核缺省工作队列中加入任务

int schedule_work(struct work_struct *work);
int schedule_delayed_work(struct work_struct *work, unsigned long delay);

-----------------------------------------------------------------------------------------------------------------------------------------
1.任何一个在工作队列中等待了无限长的时间也没有运行的任务可以用下面的方法取消:
    int cancel_delayed_work(struct work_struct *work);
2.清空工作队列中的所有任务使用:
    void flush_workqueue(struct workqueue_struct *queue);
3.销毁工作队列使用:
    void destroy_workqueue(struct workqueue_struct *queue);


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值