內核的 工作隊列 使用方法,struct work_struct

【轉帖請註明出處:blog.csdn.net/lanmanck】

工作隊列一般用來做滯後的工作,比如在中斷裏面要做很多事,但是比較耗時,這時就可以把耗時的工作放到工作隊列。說白了就是系統延時調度的一個自定義函數。

1、定義struct work_struct irq_queue;

2、初始化INIT_WORK(&irq_queue,do_irq_queuework);

3、調用方法:schedule_work(&rq_queue);

注,調用完畢後系統會釋放此函數,所以如果想再次執行的話,就再次調用schedule_work()即可。

另外,內核必須掛載文件系統纔可以使用工作隊列。我的理解是:工作隊列也屬於調度,如果內核掛了,他就不調度了,當然就不能用工作隊列了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章