You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

std::chrono::duration默认时钟类型是什么?系统休眠后等待行为如何?

C++ condition_variable wait_for 相关问题解答

关于std::chrono::milliseconds的时钟类型

std::chrono::milliseconds 是时间间隔(duration)类型,它本身并不绑定任何时钟类型。时钟(如steady_clock、system_clock)用于标记具体时间点,而duration仅表示两个时间点之间的差值。

当你将std::chrono::milliseconds(10000)传入cv.wait_for时,该函数会默认使用**std::chrono::steady_clock**(单调时钟)计算超时逻辑——以调用wait_for的时刻为起点,等待10秒物理时间后触发超时。

系统休眠后的等待行为

若计划等待10秒,运行2秒后系统进入长时间休眠,唤醒后会继续等待剩余的8秒。

原因是cv.wait_for依赖单调时钟计时,这种时钟的时间只会单调递增,不受系统休眠、系统时间调整(如手动修改时间、NTP同步)的影响,它测量的是实际流逝的物理时间。系统休眠的时间段不会被计入已等待时长,因此唤醒后会补足剩余的等待时间。


内容的提问来源于stack exchange,提问作者yanran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 07:17:05