#include <linux/namei.h>
#include <linux/mount.h>
#include <linux/fd.h>
#include <linux/sched.h>
#include <linux/kthread.h>
#include <linux/time.h>
static void my_add_work_func(struct work_struct *work)
{
// do something
}
struct workqueue_struct *my_wq;
static DECLARE_WORK(my_wq_work, my_add_work_func);
void call(void)
{
if (my_wq != NULL)
queue_work(my_wq, &my_wq_work);
}
void init()
{
my_wq = create_singlethread_workqueue("my_wq");
}
void exit()
{
flush_workqueue(my_wq);
}
static int my_thread(void *dir)
{
// do something
return 0;
}
int call_thread(void)
{
struct task_struct *thread;
thread = kthread_run(my_thread, (void*)NULL, "my_thread");
if (IS_ERR(thread)) {
pr_err("failed to create thread for keyon_thread init\n");
return -EBUSY;
}
return 0;
}
<Linux> 创建workqueue和thread
最新推荐文章于 2023-07-29 12:37:31 发布
本文介绍了一个基于Linux内核的工作队列机制实现方法。通过创建单线程工作队列并定义工作项处理函数,实现了任务调度的功能。此外,还展示了如何通过内核线程来运行特定的任务。

1085

被折叠的 条评论
为什么被折叠?



