我正在尝试使用multiprocessing模块python.我有以下示例代码,它在ipython笔记本中没有任何错误地执行.但我发现在后台生成了额外的python进程,每次执行代码块都在笔记本中.
import multiprocessing as mp
def f(x):
print "Hello World ", mp.current_process()
return 1
pool = mp.Pool(3)
data = range(0,10)
pool.map(f, data)
Run Code Online (Sandbox Code Playgroud)
然而,当我将其保存在正常的.py文件中并执行时,我遇到错误并且必须终止终端以阻止程序执行.
我通过if __name__ == '__main__':在此下创建池并使用pool.close()关闭池来纠正此问题.
我使用的时候很好奇,想知道什么最佳实践之一应该遵循multiprocessing和相关的功能,例如map,apply,apply_async等?我计划使用这个模块并行读取文件,并希望将其应用于少数ML算法以加快过程.