Infinite loop 所有无限循环都是坏的吗?

Infinite loop 所有无限循环都是坏的吗?,infinite-loop,Infinite Loop,出于好奇,所有的无限循环都是坏的吗 如果运行一个无限循环,会产生什么不良影响和后果 此外,如果它们并非都是坏的,你能举一些例子说明它们什么时候能起到有意义的作用吗 他们是否需要一些东西来关闭实例?例如,我们总是在Java中使用StreamReader后关闭它(不知道为什么) 我不知道你说的“坏”是什么意思 无限循环在许多场景中很常见,主要是事件处理程序循环,其中程序位于无限循环中,等待某个外部事件发生,该事件被处理并返回等待。这就是GUI和许多服务器的编程方式 更新 它们非常有用,可以证明构造

出于好奇,所有的无限循环都是坏的吗

  • 如果运行一个无限循环,会产生什么不良影响和后果
  • 此外,如果它们并非都是坏的,你能举一些例子说明它们什么时候能起到有意义的作用吗
  • 他们是否需要一些东西来关闭实例?例如,我们总是在Java中使用StreamReader后关闭它(不知道为什么)

    • 我不知道你说的“坏”是什么意思

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

      更新 它们非常有用,可以证明构造只适用于中的无限循环。

      • 如果您正确编写程序,就不会因为循环而产生任何副作用
      • 在微控制器上,无止境的循环用于永远不会到达程序的末尾。在微控制器程序的末尾,大多数时候没有操作系统可以接管。然后到达状态,此时不存在定义的行为,程序可以执行任何操作

        • 以一个简单的服务器为例,侦听连接

          • 倾听请求
          • 获取请求,为该请求生成线程
          • 冲洗并重复
          这种情况非常常见,在事件处理中经常可以看到

          否定的

          • 程序将永远不会终止,除非您手动终止它(根据情况,也是肯定的)
          他们是否需要一些东西来关闭实例

          • 不,您不需要,正如前面提到的,您可以手动终止它,但您可以实现一个输入命令行来接受终止命令,以优雅地结束

          您有时会听到killer loop(杀手循环)这一短语,指的是行为恶劣的循环(无限循环或其他循环)。通常为无意中消耗大量CPU时间、内存或两者兼而有之的循环保留。所有的杀手循环都是坏的

          弗罗特环也可能是杀手环,这取决于你的糖尿病状态

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

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


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

          不,它们还不错,实际上很有用


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

          在实时程序中,无限循环是正常的。看一看ArduinoIDE——仅有的两个函数是setup()和loop()。假设loop()永远不会退出,除非电源断开。

          我有几篇文章谈到当计算机内存在无限循环中时会过载。为什么GUI和服务器没有过载内存?我不知道这些文章所说的过载是什么意思。只有一个sleep语句的无限循环不会影响计算机的内存。当无限循环中存在内存泄漏时,可能会发生内存过载。如果可以从外部终止它,它是无限循环吗?;)编程中没有什么是无限的,我的朋友;)您描述的循环可能没有那么明显的结束条件,但它们不是无限的。术语“无限”是指要求机器无限期运行的程序吗?不,我的意思是,例如,事件处理循环将在某些事件(如关闭最后一个窗口或“退出”)时终止选择菜单项,这样即使是路由器等独立设备也有循环结束的条件(如通过ssh接收到的“关机”命令)。真正的无限循环非常少见。事实上,循环函数存在。。。但是它被一次又一次的呼唤,直到永远。。i、 主要函数基本上类似于:void main(){setup();while(1)loop();}