ruby - (J)Ruby - 杀死一个线程可以吗?

标签 ruby multithreading jruby

在 Java 中,停止线程是不行的。所以,我想知道这个 (Thread.exit) 在 Ruby 中是否合适?

(FWIW,我正在使用 Ruby 的 JRuby 风格)

最佳答案

一般来说,强行停止线程总是被禁止的,因为你不能保证干净地释放线程持有的资源和锁。所以 Nick 是对的,指示线程是时候关闭自身的变量通常更好。

但是,对于您的情况,除了强行终止线程外可能别无选择。最安全的方法是在线程中使用 Thread#raise 一些东西来允许正常的异常处理并确保 block 来清理资源。但当然,这可以由用户拯救。但是,JRuby 应该 还运行确保 block 以响应不可挽救的 Thread#kill。在任何一种情况下,您都不能保证您不会中断正在进行的确保 block ,但对于您的情况来说,这也许是一个可以接受的风险。

关于ruby - (J)Ruby - 杀死一个线程可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5220678/

相关文章:

Ruby - 将字符串首字母转换为小写的简单方法

log4j - 如何为从 JRuby 调用的 Java jar 设置 log4j 日志记录级别

c - 线程无法正常工作 - C

ruby-on-rails - 在 Rails 数据库中实现基于父类(super class)子类模型设计的最佳方法?

ruby - 为什么 f(arg, superfluous_arg) 是 ArgumentError 而 f (arg, superfluous_arg) 是 SyntaxError?

javascript - Rails 通讯录

java - AsyncTaks 的受控执行

java - 数组阻塞队列 : why signal conditions in InterruptedException blocks?

java - Jruby "RuntimeHelpers"类已弃用

ruby - 使用 Watir 时如何保存 Chrome 的设置?