主进程和子进程的结束顺序

主进程和子进程的结束顺序

import multiprocessing
import time

# 工作函数
def work():
    for i in range(10):
        print('工作中...')
        time.sleep(0.2)

if __name__ == '__main__':
    # 创建子进程
    work_process = multiprocessing.Process(target=work)

    # 启动子进程
    work_process.start()
    # 延时一秒
    time.sleep(1)
    print("主进程执行完毕")

实际控制台输出如下:

工作中...
工作中...
工作中...
工作中...
工作中...
主进程执行完毕
工作中...
工作中...
工作中...
工作中...
工作中...

如何让控制台的输出与实际一致呢?有两种方法

if __name__ == '__main__':
    # 创建子进程
    work_process = multiprocessing.Process(target=work)

    # 方法一:设置守护主进程
    # work_process.daemon = True

    # 启动子进程
    work_process.start()
    # 延时一秒
    time.sleep(1)
    # 方法二:手动结束子进程
    work_process.terminate()
    print("主进程执行完毕")