【Python高级编程006 ● 多任务编程 ● 不等待子进程执行结束,主进程提前销毁的方式】


---------Python基础编程---------

Author : AI菌


 

【内容讲解】

1、主进程会等所有的子进程执行完成以后在退出
    为了保证子进程能够正常的运行,主进程会等所有的子进程执行完成以后再销毁
2、子进程还有没执行结束,怎么结束主进程?
    方法一:
        提前销毁子进程方式:子进程对象.terminate()
    方法二:
        设置守护主进程方式: 子进程对象.daemon = True
        设置守护主进程的目的是主进程退出前销毁子进程,不让主进程再等待子进程去执行。

 

【代码演示】

"""
1、主进程会等所有的子进程执行完成以后在退出
    为了保证子进程能够正常的运行,主进程会等所有的子进程执行完成以后再销毁
2、子进程还有没执行结束,怎么结束主进程?
    方法一:
        提前销毁子进程方式:子进程对象.terminate()
    方法二:
        设置守护主进程方式: 子进程对象.daemon = True
        设置守护主进程的目的是主进程退出前销毁子进程,不让主进程再等待子进程去执行。
"""

import multiprocessing
import time


# 现在创建一个子进程,这个子进程执行完大概需要0.6秒钟,现在让主进程执行0.3秒钟就退出程序
# 看看主进程是直接退出,还是等子线程执行完再退出

def task():
    for i in range(3):
        print("正在工作中。。。")
        time.sleep(0.2)


if __name__ == '__main__':
    # 创建子进程
    sub_process = multiprocessing.Process(target=task)
    # 方式一,设置守护主进程,主进程退出子进程就销毁,停止运行
    # sub_process.daemon = True

    # 启动子进程执行对应的任务
    sub_process.start()

    # 主进程延时0.3秒
    time.sleep(0.3)

    # 方式二, 主进程结束前,让子进程销毁
    sub_process.terminate()
    print("主线程over了!!!")

 

【运行结果】

正在工作中。。。
正在工作中。。。
主线程over了!!!

 

【往期精彩】

▷【Python基础编程196 ● 读取文件的4种方式】
▷【Python基础编程197 ● 读取文件的4种方式】
▷【Python基础编程198 ● 读取文件的4种方式】
▷【Python基础编程199 ● Python怎么读/写很大的文件】
▷【Python基础编程200 ● 读取文件的4种方式】
▷【Python基础编程201 ● 读取文件的4种方式】
▷【Python基础编程202 ● 读取文件的4种方式】
▷【Python基础编程203 ● 读取文件的4种方式】

 

【加群交流】



posted @ 2020-09-02 20:31  AI菌  阅读(779)  评论(0编辑  收藏  举报