gpt4 book ai didi

linux-kernel - 除了内核定时器,有没有办法在设定的时间间隔内重复执行一个功能?

转载 作者:行者123 更新时间:2023-12-05 04:18:48 24 4
gpt4 key购买 nike

我正在编写一个用作内存存储的内核模块。我想每 10 秒将数据备份到一个文件中。我觉得kernel timer可以解决这个问题,但是我觉得用起来太麻烦,好像用kthread跑不了。除了使用内核定时器之外,在设定的时间间隔内重复执行功能的任何更好的方法。请建议我一些更好的方法。如果可能的话,告诉我更多关于如何实现的信息,或者给我一些关于它的用法的引用。谢谢

最佳答案

你可以看看 schedule_delayed_work()<linux/workqueue.h> .在您指定的延迟后,它会在流程上下文中运行您的工作项。您将需要您的工作函数重新安排自身再次运行(即对自身再次调用 schedule_delayed_work()),但这是一个非常标准的事情。

如果你真的想拥有自己的内核线程,你可以使用schedule_timeout()让自己延迟 10 秒。或者去 sleep 并使用计时器唤醒自己(我同意另一个答案——计时器 API 非常易于使用)。

关于linux-kernel - 除了内核定时器,有没有办法在设定的时间间隔内重复执行一个功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8544839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com