queue_delayed_work(struct workqueue_struct *wq,struct delayed_work *dwork,unsigned long delay)
在上面的函数中,是否可以给出小于 1 jiffy 的延迟?
最佳答案
您可以延迟零个或多个jiffies。为了获得延迟,内核在内部使用了一个定时器。最早的计时器可以在最近的下一个刻度上到期。因此,可能的最小延迟是 1 jiffies。在 jiffies 为零的情况下,延迟的工作 (dwork) 将立即开始,没有任何延迟。
queue_delayed_work内部调用 __queue_delayed_work配置计时器的实现完成的地方。最小过期时间是 jiffies + delay。有关详细信息,请参阅链接。
要安排你的工作时间少于 jiffiy 计时器,你可以使用 hrtimers (高分辨率定时器)。
有关实现 hrtimer 的更多信息,请阅读以下链接:
关于linux - 如何在延迟工作队列中给出小于 jiffies 的延迟值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46927979/