JRuby上的Ruby Net :: HTTP线程是否安全

时间:2011-11-10 22:04:01

标签: ruby multithreading thread-safety jruby

JRuby 附带的Net::HTTP 与MRI Ruby附带的{/ 1>相同/类似。

有没有人知道这个实现是否是线程安全的(以及你怎么知道)。

我唯一的证据是net-http-persistent库的存在,它声称是一个使用Net::HTTP的线程安全库。

检查Net::HTTP的来源并未发现任何明显的共享状态。

任何人都有更多信息?

2 个答案:

答案 0 :(得分:1)

取决于线程安全的含义。 Net :: HTTP使用TimeOut,它通常被认为是破坏的,因为它使用了Thread#raise和thread#kill。 看这里... http://blog.headius.com/2008/02/rubys-threadraise-threadkill-timeoutrb.html

答案 1 :(得分:0)

我不能说Net :: HTTP,但并不是所有JRuby的代码都是线程安全的。例如,Data safety and GIL removal表明Array不是线程安全的。这也在JRuby wiki上说明。