PHP-CURL的curl_multi_exec内部真的是多线程的吗?

时间:2012-01-16 15:38:08

标签: php multithreading curl libcurl

我的问题非常简单,如标题所述。但是我再说一遍。

我想使用php-curl下载多个站点。我将从控制台运行它。我将使用curl_multi_exec下载所有网站。现在问题是,卷曲会为每个请求创建不同的线程吗?

我知道我可以通过分叉多个进程来实现它。但那不是线程。我不想要线程化。我想知道它是否是多线程的?

1 个答案:

答案 0 :(得分:11)

没有。多接口并行执行多个请求,但它使用非阻塞API调用。

当特定传输需要解析主机名时,人们可能面临的问题发生,因为大多数操作系统中的标准主机名解析器功能是同步的,这使得每个解析阻止所有其他传输。 libcurl通过提供替代的解析器后端(例如使用c-ares进行解析而另一个用于解析单独的线程中的“stock resolver” - 即所谓的线程解析器)来克服这一问题。