Python multiprocessing库进程无输出问题求助
问题解决:multiprocessing进程无输出的原因及修复
你的代码在Windows环境下运行会出现无输出的情况,核心原因有两个:
- Windows系统中,
multiprocessing启动子进程时会重新导入主脚本文件,如果没有入口保护,会导致子进程重复执行代码逻辑,甚至引发错误。 - 主进程启动子进程后立即退出,没有等待子进程完成输出就终止了,所以终端看不到内容。
修正后的代码:
import multiprocessing as mp def foo(): print("hello") if __name__ == '__main__': task = mp.Process(target=foo) task.start() task.join() # 等待子进程执行完毕
关键说明:
if __name__ == '__main__':这是Windows下使用multiprocessing的必要保护,避免子进程重复执行整个脚本的代码。task.join():让主进程等待子进程执行完成后再退出,确保子进程的输出能被捕获并显示。
如果是在Linux/macOS环境下,虽然不需要强制的入口保护,但添加join()同样能保证主进程等待子进程输出,避免因主进程提前退出导致的无输出问题。
内容的提问来源于stack exchange,提问作者farshadarbab
相关产品推荐
相关产品推荐

