我到处都读到 PHP 不支持多线程,但有一些解决方法。但是为什么PHP 不支持多线程呢?对于服务器端脚本语言,这似乎是一个明显的遗漏。
2 回答
阅读此 URL,我认为它对您很有帮助。
PHP 多线程 – 伪造它
http://w-shadow.com/blog/2007/08/20/php-multithreading-faking-it/
PHP 本身并不真正支持多线程,但有一些方法可以实现“假”多线程。这是我在 PHPClasses.org 时事通讯中看到的——
请注意,此类旨在用于网络服务器,而不是从命令行(或类似)运行 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/。从这个角度来看,不包括线程也就不足为奇了。