首页 > 解决方案 > 为什么 c++11 sleep_for microseconds 实际上睡了毫秒?

问题描述

我在我的 centos 7 服务器中调用了这个函数。

我发现 std::this_thread::sleep_for(chrono::nanoseconds(1)) 实际上睡了一毫秒,有什么解释吗?我认为这可能是由操作系统设置引起的?

标签: c++c++11operating-systemthread-sleep

解决方案


sleep_for文档中,您可以看到:

至少在指定的 sleep_duration 内阻止当前线程的执行。

由于调度或资源争用延迟,此函数可能会阻塞比 sleep_duration 更长的时间。

最可能的原因是您的进程调度程序踢出休眠线程并且没有重新调度它一毫秒。


推荐阅读