在主循环中轮询也不是解决问题的方法-您的进程可能不会获得太多的cpu时间,因此在您的代码开始运行之前,将经过10ms以上的时间,从而使其无意义。
10毫秒约为大多数非实时操作系统(RTOS)的标准计时器分辨率。但这在非RTOS中是没有意义的- 调度程序和调度程序的行为将极大地影响您对计时器到期的响应速度。例如,即使假设您有一个低于10ms的分辨率计时器,如果代码未运行,您也无法响应计时器到期。由于您无法预测代码何时运行,因此无法准确响应计时器到期。
当然有实时Linux内核,有关列表,请参见http://www.linuxdevices.com/articles/AT8073314981.html。RTOS提供了一些设施,通过这些设施,您可以在何时运行代码方面获得软性或硬性保证。这是可靠,准确地响应计时器到期等的唯一方法。