Py学习  »  Python

如何使for循环在python中创建进程?

David Pacak • 6 年前 • 1860 次点击  

我只是个初学者,所以也许答案对你来说是显而易见的。我在做一个简单的程序,我想在那里使用多处理。我有一个函数(我们称之为f),它在某个url上发出请求。我想让用户有机会选择“线程数”(同时运行的函数数?)是的。

我已经尝试过在用户可以用input()调整的变量范围内使用变量进行for循环,但我不知道如何创建进程(我知道如何“手动”而不是“自动”地创建进程)。你能帮帮我吗?

if __name__ == '__main__':
    p1 = Process(target=f1)
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46680
文章 [ 1 ]  |  最新文章 6 年前
furas
Reply   •   1 楼
furas    6 年前

你可以用 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