的想法
if __name__ == '__main__':是避免产生无限的进程。
腌制主脚本中定义的函数时,python必须弄清楚主脚本的哪一部分是函数代码。基本上,它将重新运行您的脚本。如果创建的代码
Pool在同一脚本中,并且不受“
if main”的保护,那么通过尝试导入该函数,您将尝试启动另一个
Pool,然后尝试启动另一个
Pool....。
因此,您应该将函数定义与实际的主脚本分开:
from multiprocessing import Pool# define test functions outside main# so it can be imported withou launching# new Pooldef test_func(): passif __name__ == '__main__': with Pool(4) as p: r = p.apply_async(test_func) ... do stuff result = r.get()



