你可以用
Pool
决定同时运行多少个进程。你不必为此建立循环。
from multiprocessing import Pool
import requests
def f(url):
print('url:', url)
data = requests.get(url).json()
result = data['args']
return result
if __name__ == '__main__':
urls = [
'https://httpbin.org/get?x=1',
'https://httpbin.org/get?x=2',
'https://httpbin.org/get?x=3',
'https://httpbin.org/get?x=4',
'https://httpbin.org/get?x=5',
]
numer_of_processes = 2
with Pool(numer_of_processes) as p:
results = p.map(f, urls)
print(results)
它将用前两个url启动两个进程。当其中一个结束其作业时,它将使用下一个url再次启动进程。
您可以在文档中看到pool的类似示例:
multiprocessing