c++ sleep 占用过多的CPU使用率

标签 c++ c

<分区>

我是 C++ 菜鸟;我有个问题。我正在使用:

while(true) { 
      doSomething(); 
      Sleep(time);
} 

...在一个线程中,由于 sleep 本身,我的程序占用了很高的 CPU(经过检查,这一定是问题所在)。有什么办法可以用别的吗?

最佳答案

“Sleep()”不消耗 CPU - 除了调用开销。

一个可能的原因是您有其他线程在旋转。如果您使用 OpenMP 或 Intel 的线程构建 block 之类的东西,就会发生这种情况;在休眠期间,这些系统使用的工作线程会不断轮询要执行的工作,从而导致 CPU 使用率过高。

或者您有一个自己的工作线程,它正在旋转 CPU 等待工作被交付。

关于c++ sleep 占用过多的CPU使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18927711/

相关文章:

c++ - 释放 std::list<cv::Mat> c++ 的内存

c++ - std::vector 的复制构造函数如何操作?

c++ - 模板函数导致找不到标识符

c - 在 C 中创建动态数组(指针)/调整其大小时出现问题

c - 错误: ‘node’ undeclared (first use in this function)

c++ - 以下方式调用函数有什么区别?

c - 尝试从设备读取时,Raspberry Pi 上出现 FT_DEVICE_NOT_FOUND - sudo 不起作用

c++ - 从 .exe 开始,不调试就开始吗?

c++ - 关于 RAII : How to prevent errors caused by accidentally creating a temporary?

代码以错误的格式打印错误的符号