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


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

Author : AI菌


 

【内容讲解】

一、问题提出:假如我们就让主线程执行1秒钟,子线程就销毁不再执行,那怎么办呢?
        我们可以设置守护主线程,守护主线程就是主线程退出子线程销毁不再执行。
二、设置守护主线程有两种方式:
    1、threading.Thread(target=show_info, daemon=True)
    2、线程对象.setDaemon(True)

 

【代码演示】

"""
一、问题提出:假如我们就让主线程执行1秒钟,子线程就销毁不再执行,那怎么办呢?
        我们可以设置守护主线程,守护主线程就是主线程退出子线程销毁不再执行。
二、设置守护主线程有两种方式:
    1、threading.Thread(target=show_info, daemon=True)
    2、线程对象.setDaemon(True)
"""

# 创建一个子线程,这个子线程执行完大概需要2.5秒钟,现在让主线程执行1秒钟就退出程序
# 我们可以设置守护主线程,守护主线程就是主线程退出子线程销毁不再执行

import threading
import time


def task():
    for i in range(10):
        print("任务执行中。。。")
        time.sleep(0.3)


if __name__ == '__main__':
    # 创建子线程
    # 1. daemon=True 表示守护主线程,主线程退出子线程销毁
    # sub_thread = threading.Thread(target=task,daemon=True)

    # 2.setDaemon(True)表示守护主线程
    sub_thread = threading.Thread(target=task)
    sub_thread.setDaemon(True)

    # 启动子线程执行任务
    sub_thread.start()

    time.sleep(1)
    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-05 20:23  AI菌  阅读(1033)  评论(0编辑  收藏  举报