我目前正在尝试找出为什么一个进程与while 1占用处理器。这是我的代码示例。
int *a = NULL;
while(1)
{
a = (int*)malloc(10000);
std::cout << "Ptr to allocated memory: " << a << std::endl;
}
当我运行“top”命令时,只要它正在执行,它就在顶部。有人可以帮我理解原因吗?如果具有汇编级别知识的人也可以提供答案,那将非常好。
答案 0 :(得分:2)
while(1)
将永远运行某些内容(或直到有break
)。循环中的代码将不断执行,占用大部分处理器。
这就像一个有非常贫困的孩子的父母 - 你的程序会得到所有的关注,而不会让任何其他程序得到他们需要的东西。