【发布时间】:2019-12-22 15:16:16
【问题描述】:
我的程序的一部分需要一些帮助。我想每隔 x 秒调用一个函数。 大多数灵魂的问题是,调用 sleep() 或 w/e 函数的时间会随着时间的推移而堆积。
一个例子:如果我想用 sleep(1) 每秒调用一个函数,它需要 1 秒 + 一个非常小的 x(调用 sleep() 函数的时间)。 所以需要 1,x 秒。不是 1.0 秒。
在很长一段时间内,x 会累积“大量”时间。
我想要一个代码 sn-p,它每秒执行一次,这样我就可以在没有任何额外延迟的情况下获得准确的时间戳。 我认为这是实时编程问题的一部分。
那里有一些工作代码吗?
请帮我解决这个问题。 :)
FloKL
【问题讨论】:
-
Linux 不是实时操作系统。对于您正在尝试做的事情,即让您的代码以 100% 的可预测性运行,您需要一个合适的 RTOS。有一种叫做 [RTLinux][1] 的东西可以为 Linux 系统提供实时功能。 [1]:windriver.com/products/linux/download/#product_versions