zoukankan      html  css  js  c++  java
  • Python多线程-守护线程

    守护线程:守护着非守护线程,守护线程和非守护线程同时运行,当非守护线程运行结束后,无论守护线程有没有运行完,脚本都会停止运行

    首先看一段普通的多线程实例

    # -*- coding:utf-8 -*-
    __author__ = "MuT6 Sch01aR"
    
    import threading
    import time
    
    def MyThread(n):
        print("Running %s Thread"%n)
        time.sleep(2)
        print(n,"Thread has slept 2s")
    
    for i in range(20):
        t = threading.Thread(target=MyThread,args=(i,))
        t.start()
    
    print("-----The Main Thread-----")
    

     运行结果

    所有线程结束后,脚本才结束运行

    将子线程设置为守护线程

    # -*- coding:utf-8 -*-
    __author__ = "MuT6 Sch01aR"
    
    import threading
    import time
    
    def MyThread(n):
        print("Running %s Thread"%n)
        time.sleep(2)
        print(n,"Thread has slept 2s")
    
    for i in range(20):
        t = threading.Thread(target=MyThread,args=(i,))
        t.setDaemon(True) #将该线程设置为守护线程
        t.start()
    
    print("-----The Main Thread-----")
    

     运行结果

    非守护线程(主线程)运行完,守护线程(子线程)没有全部运行完,脚本就退出了

  • 相关阅读:
    PAT Advanced 1073 Scientific Notation (20 分)
    PAT Advanced 1071 Speech Patterns (25 分)
    C++ 正则查找
    PAT Advanced 1022 Digital Library (30 分)
    Linux文件系统及常用命令
    Elasticsearch常用查询
    Sublime Text3 快捷键
    Lua函数
    线程池
    Jdk8新特性之Base64
  • 原文地址:https://www.cnblogs.com/sch01ar/p/8037481.html
Copyright © 2011-2022 走看看