本文转载自:http://blog.csdn.net/zahuopuboss/article/details/43268983
初始化工作队列
调度工作队列
取消工作队列
#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");