4

そのため、Thread#raise、Thread#kill、および拡張タイムアウトの危険性に関する古いブログ投稿があります ( http://headius.blogspot.com/2008/02/rubys-threadraise-threadkill-timeoutrb.html )。Java は、ほぼ同じ理由で相当するメソッドをかなり前に非推奨にしました ( http://docs.oracle.com/javase/1.4.2/docs/guide/misc/threadPrimitiveDeprecation.html )。

ブログの投稿は非常に古いです。Thread.raise の最新の実装は安全ですか? もしそうなら、それを証明/実証するための文書/約束はありますか?

4

1 に答える 1

3

いいえ、それらはまだ安全ではありません (少なくとも Ruby では)。 https://github.com/ruby/ruby/blob/trunk/lib/timeout.rbは最新のコードで、まだそこにあることがわかりますx.raise exception。これは、ネストされたタイムアウトがある場合、互いに競合する可能性があるなどの悪いことをする可能性があります[うーん]。ふぅ。

于 2013-10-07T20:26:51.347 に答える