如何制作将在 Python 中创建进程的 for 循环?

How to make for loop that will create processes in Python?

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

我已经尝试在用户可以使用 input() 调整的变量范围内使用 _ 变量创建 for 循环,但我不知道如何创建进程(我知道该怎么做 'manually' 但不是 'automatically')。你能帮帮我吗?

if __name__ == '__main__':
    p1 = Process(target=f1)

您可以使用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)

它将启动 2 个进程,前两个 url。当其中一个结束其工作时,它会再次开始处理下一个 url.


您可以在文档中看到与 Pool 类似的示例:multiprocessing