5

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

4

2 回答 2

10

阅读此 URL,我认为它对您很有帮助。

PHP 多线程 – 伪造它

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

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

多线程模拟

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

于 2012-08-27T19:40:41.123 回答
-3

几年后编辑:您可以使用pthreadsPHP 多线程,但您真的想要吗?

我不确定是否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/。从这个角度来看,不包括线程也就不足为奇了。

于 2012-08-27T19:21:15.963 回答