c - while 1 占用处理器的编程

标签 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”命令时,只要它正在执行,它就位于顶部。有人可以帮我理解原因吗?如果具有汇编级知识的人也能提供答案,那就太好了。

最佳答案

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

这就像一个 parent 有一个非常需要帮助的 child - 您的程序将得到所有的关注,而不会让任何其他程序得到他们需要的东西。

关于c - while 1 占用处理器的编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22740921/

相关文章:

linux - svn合并问题(svn的3个级别)

c++ - eclipse 中的 unique_ptr 自动完成

c - 解析文本文件( Unresolved 问题)

python - python 中导入的 C 函数给出了无意义的输出 - 翻译失误?

从函数 c 返回二维数组的正确方法

c - 功能:变量替换

c - 为什么“while(!feof(file))”总是错误的?

c - 访问 CIE L* a*b* 色彩空间中的像素信息

linux - CentOS 基于属性的比较操作 Rsyslog

java - 如何让java中的无限循环工作?