根据Ubuntu下的Linux手册页
CLOCK_MONOTONIC Clock that cannot be set and represents monotonic time since some unspecified starting point. CLOCK_MONOTONIC_RAW (since Linux 2.6.28; Linux-specific) Similar to CLOCK_MONOTONIC, but provides access to a raw hard‐ ware-based time that is not subject to NTP adjustments.
根据韦伯斯特在线词典,单调意味着:
2:具有随自变量或项下标的值增加而永不增加或永不减少的属性。
换句话说,它不会向后跳。我可以看到,如果您正在计时某些代码,那么这将是一个重要的属性。
但是,普通版本和原始版本之间的区别尚不清楚。有人可以阐明NTP如何仍然影响CLOCK_MONOTONIC吗?
CLOCK_MONOTONIC永远不会由于NTP时间调整而经历中断,但是它 确实会 改变频率,因为NTP了解本地振荡器和上游服务器之间存在什么错误。
CLOCK_MONOTONIC
CLOCK_MONOTONIC_RAW只是本地振荡器,不受NTP约束。如果您想针对由于NTP而无法解决问题的时钟实施其他时间同步算法,这可能非常有用。尽管ntpd(NTP协议的参考实现和最广泛的NTP守护程序)被称为具有时间调整功能的“温和”,但准确地说是绝对时间比较温和。它愿意将时钟摆幅降低500ppm,如果您能够相对于其他标准来测量时钟频率,那将是非常惊人的。
CLOCK_MONOTONIC_RAW
在CLOCK_MONOTONIC_RAW诸如此类的设施pthread_timedwait_monotonic提供使用该时基的选项之前,的效用将受到限制。
pthread_timedwait_monotonic