在python中并行化函数调用

时间:2016-06-23 12:01:11

标签: python multithreading parallel-processing subprocess

我在python中有一个函数,我需要多次同时执行它(以节省计算成本)。 以下是一个简单的例子,我不知道如何同时调用我的函数!

def f(x):
    return x

y1=f(x1)
y2=f(x2)

我需要同时执行y1和y2并等到完成并保存结果。 提前谢谢大家。

2 个答案:

答案 0 :(得分:2)

我建议您阅读https://docs.python.org/3/library/multiprocessing.html文档,其中有一个很好的例子。如果你正在使用Python 3.x

from multiprocessing import Pool
def f(x):
    return x*x

if __name__ == '__main__':
    with Pool(5) as p:
        print(p.map(f, [1, 2, 3]))

如果你正在使用python 2.7:https://docs.python.org/2.7/library/multiprocessing.html

from multiprocessing import Pool

def f(x):
    return x*x

if __name__ == '__main__':
    p = Pool(5)
    print(p.map(f, [1, 2, 3]))

答案 1 :(得分:2)

另一种可能对您有帮助的解决方案:

q
  

输出:1

此处f包含{{1}}的返回值。

无论如何,我建议您尝试阅读this