为什么PHP不支持多线程



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

阅读这个URL,我认为它对你有很大帮助。

PHP多线程-伪造

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

PHP本身并不真正支持多线程,但有一些方法可以实现"伪"多线程。这是我在PHPClasses.org时事通讯中看到的一个——

多线程仿真。

注意,这个类是集成的,可以在Web服务器上使用,而不是从命令行(或类似的命令行)运行PHP脚本。如果您将PHP作为一种独立的脚本语言使用,请查看本文的末尾,了解一些可以尝试的替代方案。

几年后编辑:您可以将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/.从这个角度来看,不包括线程也就不足为奇了。

最新更新