【轉帖請註明出處: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()即可。
另外,內核必須掛載文件系統纔可以使用工作隊列。我的理解是:工作隊列也屬於調度,如果內核掛了,他就不調度了,當然就不能用工作隊列了。