小编use*_*903的帖子

Windows 7:过冲C++ std :: this_thread :: sleep_for

我们的代码是用C++ 11(VS2012/Win 7-64bit)编写的.C++库提供了sleep_for我们使用的功能.我们观察到C++ sleep_for有时会出现大的超调.换句话说,我们请求睡眠15毫秒,但睡眠结果是例如100毫秒.当系统负载很高时,我们会看到这一点.

我的第一反应是:"当然,如果系统上有很多负载而其他线程正在使用CPU,那么睡眠"需要更长时间".然而,"有趣"的是,如果我们用sleep_forWindows API"Sleep"调用替换,那么我们就不会看到这种行为.我还看到sleep_for水下的函数调用了Window API Sleep方法.

sleep_for状态的文档:

该函数至少Rel_time指定的时间内阻塞调用线程.此函数不会抛出任何异常.

从技术上讲,功能正在发挥作用.但是我们没想到看到C++ sleep_for和常规Sleep(Ex)函数之间存在差异.

有人可以解释这种行为吗?

c++ windows winapi sleep

9
推荐指数
1
解决办法
1735
查看次数

标签 统计

c++ ×1

sleep ×1

winapi ×1

windows ×1