建立工作佇列

2021-10-08 20:21:09 字數 508 閱讀 9133

//定義gpio_work

struct delayed_work gpio_work;
//定義工作佇列要執行的函式

static void hook_work_callback(struct work_struct *work)

// 初始化工作佇列

static int usb_hub_probe(struct platform_device *pdev)

schedule_delayed_work() 中的第二個引數可以為為當前時間往後推多少ms,初始化gpio_work後,10000ms排程schedule_delay_work()gpio_work,執行hook_work_callback函素,執行完此函式繼續每隔5000ms schedule_delayed_work()

linux INIT WORK 建立工作佇列

linux 2.6核心使用了不少工作佇列來處理任務,他在使用上和 tasklet最大的不同是工作佇列的函式可以使用休眠,而tasklet的函式是不允許使用休眠的。工作佇列的使用又分兩種情況,一種是利用系統共享的工作佇列來新增自己的工作,這種情況處理函式不能消耗太多時間,這樣會影響共享佇列中其他任務的...

linux INIT WORK 建立工作佇列

linux 2.6核心使用了不少工作佇列來處理任務,他在使用上和 tasklet最大的不同是工作佇列的函式可以使用休眠,而tasklet的函式是不允許使用休眠的。工作佇列的使用又分兩種情況,一種是利用系統共享的工作佇列來新增自己的工作,這種情況處理函式不能消耗太多時間,這樣會影響共享佇列中其他任務的...

工作佇列分析

一 用法 struct cpu workqueue struct cacheline aligned the externally visible workqueue abstraction is an array of per cpu workqueues struct workqueue str...