在C++中,std::chrono
库提供了多种时钟类型,其中system_clock
和steady_clock
是最常用的两种。它们的主要区别在于测量时间的准确性和单调性。
system_clock
是一个系统级的实时时钟,它表示当前的系统时间,这个时间是可以被系统用户或管理员修改的。因此,system_clock
不保证时间的单调性,也就是说,它可能会因为系统时间的调整而“倒退”。
steady_clock
则是一个单调时钟,它从某个固定的时间点开始,保证时间只会向前推进,不会倒退。这种时钟非常适合用来测量时间间隔,因为它不受系统时间调整的影响。
由于system_clock
可能会因为系统时间的调整而改变,所以直接比较system_clock
和steady_clock
测量的时间点是没有意义的。如果你想要测量两个时间点之间的时间差,应该使用同一种时钟类型来进行测量。
总的来说,steady_clock
和system_clock
各有其用途,选择哪种时钟类型取决于你的具体需求。
领取专属 10元无门槛券
手把手带您无忧上云