多线程python / ruby​​ vs java?

时间:2010-06-03 05:59:48

标签: java python ruby

我想知道python / ruby​​中的多线程是否等同于java中的多线程?

我的意思是,它是否有效?

因为如果你想创建一个使用彗星技术的聊天应用,我知道你必须使用多线程。

这是否意味着我可以使用python或ruby,或者使用java更好吗?

感谢

3 个答案:

答案 0 :(得分:9)

这不是关于Ruby,Python或Java的问题,而是关于Ruby,Python或Java的特定实现的更多信息。有极其高效的线程实现的Java实现,并且存在具有极其错误的线程实现的Java实现。对Ruby和Python也是如此,基本上任何语言都是如此。

即使像Erlang这样的低效线程实现甚至无法实现 sense 的语言,有时也会出现错误的线程实现。

例如,如果您使用JRuby或Jython,那么您的Ruby和Python线程 Java线程。因此,它们不仅与Java线程一样高效,它们与完全相同

答案 1 :(得分:3)

Ruby和Python都使用全局解释器锁。这里将详细讨论该问题:Does ruby have real multithreading?

答案 2 :(得分:1)

philosodad指出GIL所呈现的约束并没有错。我不会说Ruby,但我确信可以安全地假设当你引用Python时,你实际上指的是规范的cPython实现。

在cPython的情况下,如果你想并行化在Python中实现的计算密集型操作,GIL最重要(就像在可以发布GIL的C扩展中那样)。

但是,当您编写非密集的I / O绑定应用程序(如聊天程序)时,线程实现的效率实际上只是无关紧要