使用多个参数运行相同函数的 Python 多处理

Posted

技术标签:

【中文标题】使用多个参数运行相同函数的 Python 多处理【英文标题】:Run Python Multiprocessing of same function with multiple parameters 【发布时间】:2021-05-08 00:53:57 【问题描述】:

我有一个函数说:

 Fun1(a,b):
   return a*b

我想用不同的 a 和 b 值多次调用 Fun1。 需要使用多处理,因为 Fun1 是一个称为数百万次的

【问题讨论】:

你检查过ProcessPollExecutormap 吗? 你能给我举个例子吗?似乎无法为函数使用 2 个不同的参数 【参考方案1】:
from concurrent.futures import ProcessPoolExecutor


def fun1(a, b):
    return a * b

# if __name__ == '__main__': is required for platforms that do not
# support fork(), such as Windows:
if __name__ == '__main__':
    a = [1, 2, 3]
    b = [4, 5, 6]
    with ProcessPoolExecutor(max_workers = 3) as executor:
        results = executor.map(fun1, a, b)
    for result in results:
        print(result)
4
10
18

【讨论】:

以上是关于使用多个参数运行相同函数的 Python 多处理的主要内容,如果未能解决你的问题,请参考以下文章

使用多个参数的字典使旧代码单线程代码适应多处理

如何使用多处理 python 顺序运行多个函数?

Python中multiprocessing.Pool运行带多个参数的函数

使用不同的参数并行运行相同的函数,并知道哪个并行运行在 python 中结束了

如何使用多处理在Python中运行多个异步进程?

具有多个参数的Python多处理池映射[重复]