环境
windows10
+ python3.7.3
+ PyCharm
代码
from multiprocessing import Pool
def f(x):
return x * x
p = Pool(5)
if __name__ == '__main__':
p.map(f, [1,2,3])
p.close()
p.join()
上面代码中有没有close
和join
并不影响最后的结果
错误处
Pool在使用上未放入if __name__ == '__main__':
中,可以将上述代码改成下面这样即可正常运行
from multiprocessing import Pool
def f(x):
return x * x
if __name__ == '__main__':
p = Pool(5) # 放到这里
print(p.map(f, [1,2,3]))
p.close()
p.join()
另外,一定要加if __name__ == '__main__':
这一句,否则报错。
推荐使用Pool
的方式为:
with Pool(5) as p:
print(p.map(f, [1, 2, 3]))