Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 并行网络请求:不同方法的比较_Python_Python 3.x_Concurrency_Pool - Fatal编程技术网

Python 并行网络请求:不同方法的比较

Python 并行网络请求:不同方法的比较,python,python-3.x,concurrency,pool,Python,Python 3.x,Concurrency,Pool,我想一次请求100个URL,目前正在这样做: responses = list(PoolExecutor(max_workers=NUM_PARALLEL).map( lambda xml: requests.post(URL, headers=HEADERS, data={'message': xml}), xmls)) 关于这一点,有几个问题: 列表是“计算”实际生成器对象/表达式的最佳方法吗?除非我列出,否则我只会得到

我想一次请求100个URL,目前正在这样做:

responses = list(PoolExecutor(max_workers=NUM_PARALLEL).map(
                 lambda xml: requests.post(URL, headers=HEADERS, data={'message': xml}), 
                 xmls))
关于这一点,有几个问题:

列表是“计算”实际生成器对象/表达式的最佳方法吗?除非我列出,否则我只会得到如下结果: PoolExecutor在python3中是否经常用于执行并行网络请求,或者是否有其他更可取的方法? PoolExecutor、AsyncIO和concurrent.futures之间的区别是什么? 是否列出“评估”实际发电机的最佳方法 对象/表达式?除非我列出,否则我只会得到如下结果: .result_迭代器位于 0x10ecf9888>

我认为有一个问题解决了你的担忧

PoolExecutor经常用于在中执行并行网络请求吗 python3,或者还有其他更可取的方法吗

还有其他方法,是的,你可以在StackOverflow中找到。在这个问题的答案中,只有一个人使用concurrent.futures.ThreadPoolExecutor,这是最接近PoolExecutor的

PoolExector、AsyncIO和 你想做这样的事吗


这个问题的答案可以在书的第三章找到。异步遍历。更准确地说,AsyncIO提供的API与concurrent.futures包中的API非常相似。此包提供ThreadPoolExecutor和ProcessPoolExecutor。默认情况下是基于线程的,但可以使用基于线程或基于池的执行器。

我认为AsyncIO文档中的示例与您的示例类似。我可能会使用concurrent.futures,但有时我认为更熟练地使用AsyncIO是值得的?是否列出“评估”的最佳方法。。。这应该包括在文档中,对吗?如果不是的话,我肯定有很多信息。PoolExecutor在python3中是否经常用于执行并行网络请求,或者是否有其他更可取的方法?我忘了提到2可能是非常主观的。在某种程度上可以判断一个图书馆有多受欢迎/普遍,尽管这并不完全是一个想法。我想说,还有其他更可取的方法吗。