我目前正在尝试找出为什么带有 while 1 的进程会占用处理器。这是我的代码示例。
int *a = NULL;
while(1)
{
a = (int*)malloc(10000);
std::cout << "Ptr to allocated memory: " << a << std::endl;
}
当我运行“top”命令时,只要它正在执行,它就位于顶部。有人可以帮我理解原因吗?如果具有汇编级知识的人也能提供答案,那就太好了。
最佳答案
while(1)
将永远运行某些内容(或直到出现break
)。循环内的代码将不断执行,占用大量处理器。
这就像一个 parent 有一个非常需要帮助的 child - 您的程序将得到所有的关注,而不会让任何其他程序得到他们需要的东西。
关于c - while 1 占用处理器的编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22740921/