python - 使用 pool.map 在 Python 中运行多个函数

标签 python multiprocessing

我需要并行运行多个函数。我试过了

from multiprocessing import Pool

def smap(f, *args):
    return f(*args)

def somma(*args):
    a=args[0]
    b=args[1]
    return a+b

def prodotto(*args):
    a=args[0]
    b=args[1]
    return a*b

pool = Pool(processes=2)
a=2
b=4
res=pool.map(smap, [(somma,a,b),(prodotto,a,b)])
print(res)

错误如下:

TypeError: 'tuple' object is not callable

怎么了?

最佳答案

您将整个元组作为第一个参数 f 传递给函数 smap,这不是您想要的函数。您可以将 smap 更改为:

def smap(f_args):
    f, *args = f_args
    return f(*args)

这将正确地只接受来自 Pool.map 的一个参数,并在调用中拆分 fargs

关于python - 使用 pool.map 在 Python 中运行多个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63738083/

相关文章:

python - 在 App Engine (Python) 上将文本转换为 PNG

python - 重新生成所有 flask session 而不注销用户

c++ - 我们如何在使用链表时使用多线程

python - 给定 N 个生成器,是否可以创建一个在并行进程中运行它们并生成这些生成器的 zip 的生成器?

Python 多处理 : Handling Child Errors in Parent

python - 在 python 中搜索嵌套列表的最有效方法是什么?

python - 更新 PostgreSQL 中的 json 列表类型列

python - 如何使用 MySQLdb is_connected() 使用 python 检查事件的 mysql 连接?

python - 杀死另一个线程产生的进程

Python 多处理脚本在运行数小时后死掉