from multiprocessing import Process
from time import sleep
import os
def run():
print('子进程启动')
sleep(3)
print('子进程结束')
if __name__ == '__main__':
print('父进程启动')
p = Process(target=run)
p.start()
print('父进程结束')
看到结果并不是我们所想:
先是父进程开始,然后等待子进程开始和结束后,父进程最后结束。
那在我们的操作系统中,往往是这样的,父进程不干活,子进程干活,干完活之后,父进程说收工!
子进程都销毁掉,父进程结束
只需要在 p.start 后边 加一句 p.join 就可以实现了
完整代码
from multiprocessing import Process
from time import sleep
import os
def run():
print('子进程启动')
sleep(3)
print('子进程结束')
if __name__ == '__main__':
print('父进程启动')
p = Process(target=run)
p.start()
# 添加方法
p.join()
print('父进程结束')
代码示例图: