无限循环都是不好的吗?

问题描述 投票:0回答:8

出于好奇,all无限循环不好吗?

  • 如果无限循环运行会产生哪些不良影响和后果?
  • 另外,如果它们并不全是坏事,您能否举一些例子,说明它们何时能发挥有意义的作用?
  • 他们需要有什么东西来关闭实例吗?例如,我们总是在 Java 中使用 StreamReader 后将其关闭(不知道为什么)。
infinite-loop
8个回答
6
投票

我不确定你所说的“坏”是什么意思。

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

更新 它们足够有用,足以证明在某些语言中的无限循环构造是合理的。


1
投票
  • 如果你正确编写程序,就不会因为循环而发生副作用。
  • 在微控制器上,使用无限循环永远不会到达程序末尾。在微控制器程序结束时,大多数时候没有操作系统可以接管。然后就达到了不存在定义行为并且程序可以执行任何操作的状态。

1
投票

不,它们并不坏,它们实际上很有用。

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


0
投票

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

  • 倾听请求
  • 获取请求,为该请求生成线程
  • 冲洗并重复

这种情况很常见,在事件处理中经常会看到。

负面

  • 程序永远不会终止,除非你手动终止它(也是积极的,取决于情况)

他们需要什么东西来关闭实例吗?

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

0
投票

您有时会听到短语“杀手循环”,指的是行为不良的循环(无限或其他)。通常保留用于无意中消耗大量 CPU 时间、内存或两者的循环。所有杀手循环都很糟糕。 Froot Loops 也可以是杀手循环,具体取决于您的糖尿病状况。

莫比乌斯带是很好的无限循环。


0
投票

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


0
投票


0
投票

但是这里缺少的是,您使用计算机所做的 99% 都是在处理一些无限循环运行的程序。 一些例子:

与这些服务器交互的浏览器。
  • 你的编辑。 代码或其他方式。
  • 你正在玩的那个游戏。
  • 您的音乐播放器。
  • 您的终端。
  • 您的操作系统,包括许多服务。
  • 事实上,大多数计算机都在无限循环中运行。 即使它自行关闭,它也可以稍后继续运行。 几乎所有在完成任务后不会自毁的东西。

因此,只有当“无限循环”发生在某些期望的结果发生之前(因此它不会)时,“无限循环”才真正被认为是不好的。

© www.soinside.com 2019 - 2024. All rights reserved.