5 java multithreading clojure slime swank
回应一些"潜在的答案"
你应该在你的线程中加入"中断"
我不编写我的代码,意图是一个漫长的进程/无限循环; 只是在开发过程中,我意外地编写了恰好是无限循环的代码,因此我无法事先计划将"检查线程是否被中断"放入代码中.
题:
随着我越来越熟悉Java/Clojure/Swank和增量代码开发.我发现很容易意外地编写一个最终成为无限循环的clojure函数 - 然后运行它.然后继续,然后钉住JVM,导致我的笔记本电脑上的风扇旋转 - 基本上,我必须杀死整个JVM才能摆脱一个逃跑的线程.
现在,无论如何我能以某种方式安全地杀死这些clojure线程吗?我很清楚Thread.stop有各种不安全的后果(比如持有其他线程可能需要的锁等等) - 但是,这些是无限循环的clojure函数 - 而且我在外面执行它们任何STM - 所以我想知道是否有某种方法可以安全地杀死这些线程.
谢谢!
我不认为存在完整的答案,尽管有一些不完整但仍然有用的事情要做:
ctrl-c ctrl-c从repl中击中了前景线程,后者获得了99%的常见错误.kill命令.M-x slime-quit-lisp,clojure-jack-in| 归档时间: |
|
| 查看次数: |
2538 次 |
| 最近记录: |