Python并发编程之线程池/进程池

is 1270 byte'https://api.github.com/' page is 2039 bytes'http://httpbin.org' page is 12150 bytes

使用map

# example4.pyimport concurrent.futuresimport urllib.requestURLS = ['http://httpbin.org', 'http://example.com/', 'https://api.github.com/']def load_url(url):    with urllib.request.urlopen(url, timeout=60) as conn:        return conn.read()# We can use a with statement to ensure threads are cleaned up promptlywith concurrent.futures.ThreadPoolExecutor(max_workers=3) as executor:    for url, data in zip(URLS, executor.map(load_url, URLS)):        print('%r page is %d bytes' % (url, len(data)))

从运行结果可以看出, 结果是按照列表的顺序返回的 。

ziwenxie :: ~ » python example4.py'http://httpbin.org' page is 12150 bytes'http://example.com/' page is 1270 bytes'https://api.github.com/' page is 2039 bytes

第三种选择wait