[英]Multi-processing skip beginning
我对 python 和多处理模块很陌生。 我想知道如何让过程跳过开头,以免重复。 任何帮助,将不胜感激 :)
print("Doing something!!!")
代码:
import multiprocessing
print("Doing something!!!")
def stuff():
print("Doing stuff")
if __name__ == '__main__':
p1 = multiprocessing.Process(target=stuff)
p1.start()
输出:
Doing something!!!
Doing something!!!
Doing stuff
期望的输出:
Doing something!!!
Doing stuff
请参阅文档中的multiprocessing
编程指南。
在使用“spawn”或“forkserver”方法创建进程的系统上:
确保新的 Python 解释器可以安全地导入主模块,而不会导致意外的副作用(例如启动新进程)。
您的脚本被导入到每个进程中,因此它将在所有进程中运行任何全局代码。 只需将任何全局内容移动到if __name__ == '__main__':
部分:
import multiprocessing
def stuff():
print("Doing stuff")
if __name__ == '__main__':
print("Doing something!!!")
p1 = multiprocessing.Process(target=stuff)
p1.start()
这确保了函数stuff()
将在每个进程中导入和定义,但您的print
只会在主进程中运行一次。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.