2

我已经阅读了这篇关于 ruby​​ 的 timeout 方法本质上不安全的帖子,但我看起来 JRuby 已经原生实现了 Timeout 类,我想知道这些问题在 JRuby 1.7 中是否仍然相关?从我可以从源代码中破译的内容来看,似乎有一个可重用的线程池正在使用,因此应该可以解决为每次使用启动一个新线程的许多性能问题,但我想知道安全问题,特别是当它在 Net::HTTP 中被广泛使用时。现在是否有某种互斥锁来解决这些安全问题?(对不起,我不太了解java,无法从源头上明确说明)。

长问题短:是 Timeout::timeout,以及扩展 Net::HTTP 在 JRuby 1.7 中使用它的大量、安全和高性能吗?

4

1 回答 1

1

是的,总的来说仍然不安全:

没有超时库可以解决这个问题,除非他们能够保证他们永远不会在任何确保块内触发

虽然,当在 Net::HTTP 中围绕没有任何确保块的代码片段使用时,我猜它应该没问题。(虽然他们真的应该使用非阻塞 io 和选择)

于 2013-10-15T16:04:03.763 回答