PHP 没有 curl_multi 的 cURL 多线程,怎么办?

PHP cURL multithreading without curl_multi, how to?

我知道这很可能是一个非常愚蠢的问题,我一直在使用 curl_multi 和 类,例如 https://github.com/petewarden/ParallelCurl/ 用于多线程。

但最近我发现了这个构建网络代理的过程,一个名为 glype 的开源 PHP 网络代理框架。

在我看来,所有资源都是通过cURL获取的,并且其源代码中没有任何curl_multi,代码仅包含curl_init和curl_exec。

就是说,img(可能还有其他 src)并发加载,我简要浏览了代码,但未能找到它如何工作的线索。

有人在不使用 curl_multi 的情况下尝试过多线程 cURL 吗? (PHP 不包括 pthread)

cURL Multi 与多线程或并行性无关。

cURL Multi 是 cURL 扩展中的一组函数,使用非阻塞 I/O 异步执行请求。

需要说明的是,cURL Multi 不是并行的,也不是多线程的:它促进了非阻塞异步 I/O。

Glype 使用服务器服务代码的处理模型:当您的浏览器通过 Glype 请求页面时,服务器负责创建(或重用)执行 Glype 的进程。同理,当页面向服务器请求CSS或图片等资源时,是服务器创建(或重用)一个进程,进而执行PHP解释器,依次执行 Glype.