理解 While(true) 循环
Understanding While(true) loop
使用while(true)循环,循环内没有写break,循环内有语句,会发生什么?我知道循环将进入无休止的循环。但我真正想了解的是 OS 和 SDK 方面的内容?他们中的任何一个都处理这样的循环,否则系统会在一定时间后崩溃。如果他们处理了这个问题,具体是如何实施的?
取决于循环中的内容。任何分配内存或其他资源的东西最终都会 运行 资源不足。发生什么取决于资源和代码的健壮程度(即它是否假设它分配了它要求的所有内存,或者它是否进行 NULL 检查?)
如果循环内没有任何内容使用资源,除非用户或 OS 终止进程,否则循环永远不会停止。
// This will eventually crash.
while(true) {
p = malloc(100);
*p = 0;
}
// this will go on forever.
while(true) {
looping = true;
}
使用while(true)循环,循环内没有写break,循环内有语句,会发生什么?我知道循环将进入无休止的循环。但我真正想了解的是 OS 和 SDK 方面的内容?他们中的任何一个都处理这样的循环,否则系统会在一定时间后崩溃。如果他们处理了这个问题,具体是如何实施的?
取决于循环中的内容。任何分配内存或其他资源的东西最终都会 运行 资源不足。发生什么取决于资源和代码的健壮程度(即它是否假设它分配了它要求的所有内存,或者它是否进行 NULL 检查?)
如果循环内没有任何内容使用资源,除非用户或 OS 终止进程,否则循环永远不会停止。
// This will eventually crash.
while(true) {
p = malloc(100);
*p = 0;
}
// this will go on forever.
while(true) {
looping = true;
}