Python中if __name__=="__main__" 语句在调用多进程Process过程中的作用分析
2018年2月27日 于创B515 引言 最近准备学习一下如何使用Python中的多进程。在翻看相关书籍、网上资料时发现所有代码都含有if __name__=="__main__",在实验的过程中发现如果在运行代码过程中,没有这句话Python解释器就会报错。虽然Python对于multiprocessing的文档第17.2.1.1节中 【1】 提到必须如此使用,但是我觉得并没有根本上解释清楚。因此我决定从源码来解释我的疑惑。 # 代码0.1错误代码 import multiprocessing as mp import os def do(): print ( " pid is : %s ... " % os.getpid()) print ( " parent id is : %s ... " % os.getpid()) p = mp.Process(target=do, args= ()) p.start() # 代码0.2正确代码 import multiprocessing as mp import os def do(): print ( " pid is : %s ... " % os.getpid()) if __name__ == ' __main__ ' : print ( " parent id is : %s ... " % os.getpid(