我如何在python中对函数使用多重处理?

问题描述 投票:0回答:1

我正在尝试学习python中的多重处理,但是在其早期步骤中不起作用。例如下面的代码:

counter = 2
def train_func():
    counter1 = counter*2

p1 = mp.Process(target=train_func)
p2 = mp.Process(target=train_func)

p1.start()
p2.start()

p1.join()
p2.join()

print(counter1)

结果是没有定义NameError:名称'counter1'。似乎它没有进入功能。这怎么了?

python-3.x multiprocessing
1个回答
0
投票

如果必须使用一些简单的功能,最简单的方法是使用池。您的代码看起来像:

from multiprocessing import Pool

def f(x):
    return x*x

results = []
def saveres(res):
   results.append(res)

pool = Pool(nJobs)
print pool.map(f, range(10))

for i in range(10):
    pool.apply_async(f, (i,), callback=saveres)
© www.soinside.com 2019 - 2024. All rights reserved.