【发布时间】:2012-06-29 06:22:10
【问题描述】:
出于好奇,所有无限循环都不好吗?
- 如果运行无限循环,会产生哪些不良影响和后果?
- 另外,如果它们不全是坏的,你能否举一些例子,它们什么时候能起到有意义的作用?
- 他们是否需要一些东西来关闭实例?例如,我们总是在 Java 中使用 StreamReader 后关闭它(不知道为什么)。
【问题讨论】:
标签: infinite-loop
出于好奇,所有无限循环都不好吗?
【问题讨论】:
标签: infinite-loop
我不确定你所说的“坏”是什么意思。
无限循环在许多场景中很常见,主要是事件处理程序循环,其中程序处于无限循环中并等待一些外部事件发生,该事件被处理并返回等待。这是 GUI 和许多服务器的编程方式。
更新 它们足以证明 some languages 中的无限循环构造的合理性。
【讨论】:
【讨论】:
不,它们还不错,它们实际上很有用。
这取决于您是否留下了在无限循环进行时占用内存的代码部分。无限循环几乎用于所有领域:视频游戏、网络、机器学习等,因为无限循环通常用于获取即时用户输入/事件。
【讨论】:
以一个简单的服务器为例,监听连接
这种情况很常见,你在事件处理中经常看到。
否定
他们是否需要一些东西来关闭实例?
【讨论】:
您有时会听到短语killer loop,指的是行为不良的循环(无限或其他)。通常保留用于无意中消耗大量 CPU 时间、内存或两者兼有的循环。所有的杀手循环都是坏的。
根据您的糖尿病状况,Froot Loops 也可以成为杀手循环。
莫比乌斯带是很好的无限循环。
【讨论】:
术语“无限循环”最常用于程序中的循环,如果没有可以终止它的外部操作,它不会终止。在大多数情况下,使用“中断键”向操作系统发送中断信号将证明它毕竟不是无限循环。通常,电涌或停电也会发生同样的情况。在某些带有某些操作系统的平台上,可能会出现其他中断信号并停止进程。
因此,伪无限循环对于您不想终止的进程很有用,除非受到一些“外部”影响。
【讨论】:
在实时程序中,无限循环是正常的。看看 Arduino IDE - 唯一公开的两个函数是 setup() 和 loop()。假设除非断电,否则loop()永远不会退出。
【讨论】: