为什么PHP不支持多线程?

时间:2012-08-27 19:18:21

标签: php multithreading language-design

我到处都读过PHP不支持多线程但有解决方法。但为什么 PHP不支持多线程?对于服务器端脚本语言,这似乎是一个明显的遗漏。

2 个答案:

答案 0 :(得分:10)

阅读此网址我认为这对您有帮助。

PHP多线程 - 假装

http://w-shadow.com/blog/2007/08/20/php-multithreading-faking-it/

PHP本身并不支持多线程,但有一些方法可以进行“假”多线程。这是我在PHPClasses.org时事通讯中看到的一个 -

Multi-thread Simulation

请注意,此类是在Web服务器上使用的intendnd,而不是从命令行(或类似)运行PHP脚本。如果您使用PHP作为独立的脚本语言,请查看本文末尾的一些替代方案。

答案 1 :(得分:-4)

几年后编辑:你可以使用pthreads进行PHP多线程,但你真的想要吗?

我不确定pthreads是否可用于许多托管环境。坦率地说,我并不急于找出答案。

PHP在许多应用程序中的最大优势之一是它的隔离:一个进程,一个请求。多处理通常通过在请求期间对作业进行排队并在其他地方执行来完成。例如,Laravel有“队列”:https://laravel.com/docs/5.7/queues


因为PHP不是用多线程编写的,所以添加它是一项巨大的努力(基本上是100%重写)。

有人会说PHP非常庞大:http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/。从这个角度来看,不包括线程就不足为奇了。