gpt4 book ai didi

java - 在 Java/Clojure 中杀死无限循环

转载 作者:搜寻专家 更新时间:2023-10-31 19:34:36 27 4
gpt4 key购买 nike

对一些“潜在答案”的回应

  • 你应该在你的线程中加入“中断”

    我编写代码的目的不是让它成为一个漫长的过程/无限循环;只是在开发的时候,一不小心写的代码恰好是无限循环,所以我永远无法事先计划将“检查线程是否被中断”放入代码中。

问题:

随着我越来越熟悉 Java/Clojure/Swank 和增量代码开发。我发现我很容易不小心编写了一个最终成为无限循环的 clojure 函数并运行它。然后继续进行,并挂住 JVM,导致我笔记本电脑上的风扇旋转起来——基本上,我必须杀死整个 JVM 才能摆脱一个失控的线程。

现在,我是否可以以某种方式安全地杀死这些 clojure 线程?我很清楚 Thread.stop 会产生各种不安全的后果(比如持有其他线程可能需要的锁,等等......)——然而,这些都是无限循环的 clojure 函数——并且我在任何 STM 之外执行它们 - 所以我想知道是否有某种方法可以安全地终止这些线程。

谢谢!

最佳答案

我认为不存在完全完整的答案,尽管有一些不完整但仍然有用的事情要做:

  • 首先,我从 repl 中点击 ctrl-c ctrl-c,这会杀死前台线程,这会导致 99% 的常见错误。
  • 然后,如果失败,我将使用终端和 kill 命令。
  • 之后是 M-x slime-quit-lispclojure-jack-in

关于java - 在 Java/Clojure 中杀死无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10254655/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com