程序与1同时占用处理器

时间:2014-03-30 06:16:15

标签: c linux while-loop

我目前正在尝试找出为什么一个进程与while 1占用处理器。这是我的代码示例。

int *a = NULL;
while(1)
{
    a = (int*)malloc(10000);
    std::cout << "Ptr to allocated memory: " << a << std::endl;
}

当我运行“top”命令时,只要它正在执行,它就在顶部。有人可以帮我理解原因吗?如果具有汇编级别知识的人也可以提供答案,那将非常好。

1 个答案:

答案 0 :(得分:2)

while(1)将永远运行某些内容(或直到有break)。循环中的代码将不断执行,占用大部分处理器。

这就像一个有非常贫困的孩子的父母 - 你的程序会得到所有的关注,而不会让任何其他程序得到他们需要的东西。