所有无限循环都不好吗?

时间:2012-06-29 06:22:11

标签: infinite-loop

出于好奇,所有无限循环都不好?

  • 如果您运行无限循环会发生什么不良影响和后果?
  • 另外,如果它们并非全都不好,请你举一些例子说明它们是否有意义?
  • 他们是否需要关闭实例?例如,我们总是在使用Java后关闭StreamReader(不确定原因)。

7 个答案:

答案 0 :(得分:6)

我不确定你的意思是“坏”。

无限循环在许多场景中很常见,主要是事件处理程序循环,程序处于无限循环中并等待一些外部事件发生,这些事件是句柄并返回等待。这是GUI和许多服务器编程的方式。

更新 它们足以证明some languages中的无限循环的构造是正确的。

答案 1 :(得分:1)

  • 如果您正确编写程序,则不会因为循环而发生副作用。
  • 在微控制器上无限循环用于永远不会到达程序的末尾。在微控制器程序结束时,大部分时间都没有可以接管的操作系统。然后到达状态,没有定义的行为,程序可以做任何事情。

答案 2 :(得分:1)

不,他们并不坏,他们确实很有用。

这取决于你是否在无限循环进行时留下了占用内存的代码的一部分。几乎所有东西都使用无限循环:视频游戏,网络,机器学习等,因为无限循环通常用于获取即时用户输入/事件。

答案 3 :(得分:0)

以简单服务器为例,监听连接

  • 收听请求
  • 获取请求,该请求的Spawn线程
  • 冲洗并重复

这种情况很常见,你会在事件处理中一直看到它。

否定

  • 程序永远不会终止,除非你手动杀死它(也是积极的,视具体情况而定)

他们是否需要关闭实例?

  • 不,你没有,如前所述你可以手动杀死它但你可以实现一个输入命令行来接受一个kill命令来优雅地结束

答案 4 :(得分:0)

您有时会听到杀手循环这个短语,指的是一个表现不好的循环(无限循环)。通常保留用于无意中消耗大量CPU时间,内存或两者的循环。所有杀手循环都很糟糕。

Froot循环也可以是杀手循环,具体取决于您的糖尿病状态。

Mobius条带是良好的无限循环。

答案 5 :(得分:0)

术语“无限循环”最常用于程序中的循环,如果没有可以终止它的外部操作,则该循环不会终止。在大多数情况下,使用“中断键”无论是向操作系统发送中断信号都将证明它毕竟不是无限循环。通常,电源浪涌或停电也会这样做。在某些操作系统平台上,可能会出现其他中断信号并停止该过程。

因此伪无限循环对于您不希望终止的进程非常有用,除非受到某些“外部”影响。

答案 6 :(得分:0)

在实时程序中,无限循环是正常的。看看Arduino IDE - 暴露的唯一两个函数是setup()和loop()。除非断电,否则假设loop()永远不会退出。