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('父進程結束')
代碼示例圖: