我已经在各处看到PHP不支持多线程,但有一些绕路可走。但是,为什么PHP不支持多线程呢?对于一个服务器端脚本语言来说,这似乎是一个显而易见的缺陷。
我已经在各处看到PHP不支持多线程,但有一些绕路可走。但是,为什么PHP不支持多线程呢?对于一个服务器端脚本语言来说,这似乎是一个显而易见的缺陷。
请阅读这个链接,我认为它对你有帮助。
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 并没有考虑到多线程编程,而加入多线程编程需要巨大的努力(基本上是全部重写)。
有人会说 PHP 实际上就是一堆垃圾:http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/。从这个角度来看,不包括线程也就不足为奇了。