一尘不染

Python:类似于`map`的东西可以在线程上工作

python

我确定标准库中有类似的东西,但似乎我错了。

我有一堆urlopen平行的网址。我想要类似内建map函数的东西,除了工作是由一堆线程并行完成的。

有一个好的模块可以做到这一点吗?


阅读 182

收藏
2020-12-20

共1个答案

一尘不染

有人建议我futures为此使用包装。我尝试了,它似乎正在工作。

http://pypi.python.org/pypi/futures

这是一个例子:

"Download many URLs in parallel."

import functools
import urllib.request
import futures

URLS = ['http://www.foxnews.com/',
        'http://www.cnn.com/',
        'http://europe.wsj.com/',
        'http://www.bbc.co.uk/',
        'http://some-made-up-domain.com/']

def load_url(url, timeout):
    return urllib.request.urlopen(url, timeout=timeout).read()

with futures.ThreadPoolExecutor(50) as executor:
   future_list = executor.run_to_futures(
           [functools.partial(load_url, url, 30) for url in URLS])
2020-12-20