哪种语言有更好的线程功能? PHP或Ruby

时间:2009-12-09 14:19:58

标签: php ruby

我正在创建一个需要线程的Web应用程序,我试图弄清楚PHP和Ruby之间的哪些语言具有更好的线程功能和更好的性能。

即使没有内置,也可以使用一些简单的工作或附加功能。

6 个答案:

答案 0 :(得分:9)

我不得不说Ruby,因为Ruby实际上支持它。 PHP没有。

使用PHP,您可以创建新进程(这是一个坏主意)或编写多个Web服务并使用curl_multi_ *函数来完成某些操作,但线程不是PHP的一个功能。

答案 1 :(得分:5)

如果你想要线程,这些可能是最糟糕的两种语言,但如果你真的想要这两种中的一种,我猜Ruby可以做到。不过最好选择JRuby。 JVM做了非常出色的线程。

(或者使用Groovy,它基本上是带有大量Rubyism的Java。)

答案 2 :(得分:2)

PHP通常不会进行线程化。

答案 3 :(得分:2)

PHP没有线程(好东西IMO)。

Ruby有,但在1.8中它有绿色线程,在1.9中它有一个GIL。这意味着(在MRI和YARV的情况下 - 1.8和1.9主要Ruby实现)是2个线程不能同时运行(在两种情况下)并且您无法利用多核处理器。

您可以使用两种语言的流程来克服这些限制。

答案 4 :(得分:2)

PHP目前不支持明确使用线程;您的PHP服务器可能会也可能不会使用线程来提供不同的HTTP请求(Zend引擎确实如此),但是没有设施可以通过PHP代码创建或协调线程。

答案 5 :(得分:0)

两者都不是实现你正在尝试的好方法。

考虑Gearman查看“作业”的异步处理。如果您希望将服务与其他服务松散地结合,那么您需要一个消息服务,例如RabbitMQ

似乎Gearman符合您的需求。