初始化工作隊列
調度工作隊列
取消工作隊列
[cpp]?view plain
?copy#include?<linux/module.h>??#include?<linux/sched.h>??#include?<linux/kthread.h>??#include?<linux/err.h>??#include?<linux/delay.h>????static?struct?work_struct?test_work;??static?struct?delayed_work?test_delayed_work;????static?void?test_func(struct?work_struct?*work)??{??????printk("%s,?%d,?%ld\n",?__func__,?__LINE__,?jiffies);????}????static?void?test_delayed_func(struct?work_struct?*work)??{??????printk("%s,?%d,?%ld\n",?__func__,?__LINE__,?jiffies);????}????static?int?__init?test_init(void)??{??????int?ret;??????printk("%s,?%d,?%ld\n",?__func__,?__LINE__,?jiffies);????????INIT_WORK(&test_work,?test_func);??????ret?=?schedule_work(&test_work);????????INIT_DELAYED_WORK(&test_delayed_work,?test_delayed_func);??????ret?=?schedule_delayed_work(&test_delayed_work,?5?*?HZ);????????printk("%s,?%d,?%ld\n",?__func__,?__LINE__,?jiffies);????????return?0;??}????static?void?__exit?test_exit(void)??{??????printk("%s,?%d,?%ld\n",?__func__,?__LINE__,?jiffies);??????cancel_work_sync(&test_work);??????printk("%s,?%d,?%ld\n",?__func__,?__LINE__,?jiffies);??????cancel_delayed_work_sync(&test_delayed_work);??????printk("%s,?%d,?%ld\n",?__func__,?__LINE__,?jiffies);??}????module_init(test_init);??module_exit(test_exit);??MODULE_AUTHOR("tony");??MODULE_DESCRIPTION("test");??MODULE_LICENSE("GPL");??MODULE_ALIAS("test");??
總結
以上是生活随笔為你收集整理的Linux内核中工作队列的使用work_struct,delayed_work的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。