4

因此,有一篇关于 Thread#raise、Thread#kill 以及扩展超时 ( http://headius.blogspot.com/2008/02/rubys-threadraise-threadkill-timeoutrb.html )的不安全性的旧博客文章。出于相同的原因( http://docs.oracle.com/javase/1.4.2/docs/guide/misc/threadPrimitiveDeprecation.html),Java很久以前就弃用了它的等效方法。

博文很老了。Thread.raise 的现代实现安全吗?如果是这样,是否有文件/承诺来证明/证明它?

4

1 回答 1

3

不,它们仍然不安全(至少在红宝石中)。 https://github.com/ruby/ruby/blob/trunk/lib/timeout.rb是最新的代码,你可以看到它仍然x.raise exception在那里。这可能会做坏事,例如如果您有嵌套的超时,它们可能会相互冲突 [yikes]。FWIW。

于 2013-10-07T20:26:51.347 回答