从C ++运行CURL以异步获取多个URL

时间:2015-07-11 15:27:12

标签: c++ linux curl asynchronous

我的C ++程序的一个逻辑部分必须获取调用curl(linux程序,而不是库)并通过管道获取其输出的文本文件。可能有许多网址要下载。并且下载时间可能合理。该计划旨在可扩展"并且有效。

所以问题是什么变体更可取:

  1. 运行curl的单个实例,为其提供网址列表
  2. 创建一个线程池,每个线程都调用一个curl进程程序,其中包含单个url和随后的线程输出聚合。
  3. 换句话说,在下载多个网址时卷曲是异步的,或者我必须手动实现它。

1 个答案:

答案 0 :(得分:0)

如果从管道调用cURL,那么首选的解决方案是创建一个线程池。由于线程彼此独立,因此它们一次获取多个URL。

然而,另一个有效的解决方案是使用cURL库而不是管道。这是一个example from libcurl