我在C++中运行一个简单的无限循环:
int main() {
for (;;) {}
}
Run Code Online (Sandbox Code Playgroud)
当我编译并运行它时,程序消耗100%的CPU.为什么会这样?我在Macbook Pro上使用g ++ 4.7.
Gre*_*ill 10
CPU尽可能快地运行它们给出的代码.如果没有其他感兴趣的内容,操作系统将尽可能多地为想要它的进程提供CPU时间.如果您同时运行其中两个进程,它们将分别获得大约50%的CPU时间.(请注意,如果您有多个核心,用于描述CPU使用率的术语会有点模糊,就像几乎所有现代CPU一样.如果您有四核系统,上述循环将占用一个核心的100%,或25 % 总体.)
不执行I/O(或以其他方式等待外部任何操作)的计算绑定程序都以相同的方式运行.