2

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

但是最近我遇到了这个构建一个 Web 代理,一个名为glype的开源 PHP Web 代理框架。

在我看来,所有资源都是由 cURL 获取的,并且它的源代码中没有 curl_multi,代码只包含 curl_init 和 curl_exec。

也就是说,img(可能还有其他 src)同时加载,我简要浏览了代码,但未能找到它如何以这种方式工作的线索。

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

4

1 回答 1

4

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

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

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

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

于 2015-06-27T05:08:26.643 回答