出于好奇,是全部无限循环坏?所有无限循环都不好吗?
- 如果运行无限循环会发生什么坏的影响和后果?
- 此外,如果它们并不全是坏的,请给出一些例子,以便它们能够达到有意义的目的吗?
- 他们需要有东西来关闭实例吗?例如,我们总是在Java中使用它之后关闭StreamReader(不知道为什么)。
出于好奇,是全部无限循环坏?所有无限循环都不好吗?
我不确定你的意思是“坏”。
无限循环在许多场景中很常见,大多数是事件处理程序循环,其中程序位于无限循环中,并等待发生一些处理并返回等待的外部事件。这是图形用户界面和许多服务器编程的方式。
举一个简单的服务器的例子,监听连接
这某种场景很常见,你会在事件处理中一直看到它。
负
他们需要有东西来关闭实例?
如果你能从外部杀死它,它是一个无限循环吗? ;) – risingDarkness
编程中没有任何东西是我朋友的无限;) – Robotnik
有时你会听到这样的话杀手循环,指的是一个严重的行为循环(无限或其他)。通常保留用于无意中消耗大量CPU时间,内存或两者的循环。所有的杀手循环都很糟糕。
根据您的糖尿病状态,Froot循环也可能是杀手循环。
莫比乌斯带是很好的无限循环。
术语“无限循环”最常用于程序中的循环,如果不存在可能终止它的外部动作,该循环不会终止。在大多数情况下,使用任何“中断密钥”将中断信号发送到操作系统将证明它毕竟不是无限循环。而且电力浪涌或停电通常也会这样做。而在某些操作系统的平台上,可能会出现其他中断信号并暂停进程。
因此伪无限循环对于除了某些“外部”影响之外不想终止的进程很有用。
在实时程序中,无限循环是正常的。看一下Arduino IDE - 暴露的唯一两个函数是setup()和loop()。假定除非断开电源,否则loop()将永远不会退出。
事实上,循环函数会退出,但它会永远被一次又一次地调用。即主函数基本上类似于: void main() setup(); while(1) loop(); } – frarugi87
我已经讨论过在无限循环内重载计算机内存的文章。为什么GUI和服务器不会超载内存? – Theone
我不知道这些文章意味着什么是超载。一个无限循环,只有一个单独的sleep语句,不会影响机器的内存。 –
当无限循环内存在内存泄漏时,可能会发生内存过载。 – risingDarkness