理解While(true)循环

时间:2015-02-02 00:34:32

标签: c++ sdk operating-system

当使用while(true)循环并且循环内没有写入break并且循环内部有一些语句时会发生什么?我知道循环将进入无休止的循环。但我真正想要了解的是操作系统和SDK?他们中的任何一个处理这样的循环或系统将在一定时间后崩溃。如果他们处理这个问题,究竟是如何实现的呢?

1 个答案:

答案 0 :(得分:1)

取决于循环中的内容。任何分配内存或其他资源的东西最终都会耗尽资源。发生什么取决于资源和代码的稳健性(即它是否假设它分配了它所要求的所有内存,或者是否进行了NULL检查?)

如果循环内部没有任何内容使用资源,除非用户或操作系统终止进程,否则没有理由循环。

// This will eventually crash.
while(true) {
    p = malloc(100);
    *p = 0;
}


// this will go on forever.
while(true) {
    looping = true;
}