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

    守护线程

    无论是进程还是线程,都遵循:守护xx会等待xx运行完毕后被销毁

    运行完毕并非终止运行:

    1、对主进程来说,运行完毕指的是主进程代码运行完毕
    2、对主线程来说,运行完毕指的是主线程所在的进程内所有非守护线程统统运行完毕,主线程才算运行完毕

    详细解释:

    1、主进程在其代码结束后就已经算运行完毕了(守护进程在此时就被回收),然后主进程会一直等非守护的子进程都运行完毕后回收子进程的资源(否则会产生僵尸进程),才会结束,
    2、主线程在其他非守护线程运行完毕后才算运行完毕(守护线程在此时就被回收)。因为主线程的结束意味着进程的结束,进程整体的资源都将被回收,而进程必须保证非守护线程都运行完毕后才能结束。
    #!/usr/bin/env python3
    # -*- coding:utf-8 -*-
    
    from threading import Thread
    import threading
    import  time
    
    def work(name):
        time.sleep(2)
        print('%s is running'%name)
    
    if __name__ == '__main__':
        t = Thread(target=work,args=('abc',),name='test')
        t.setDaemon(True) # 必须设置在start之前
        t.start()
    
        print('主线程')
        print(t.is_alive())
    '''
    主线程
    True
    '''
    
  • 相关阅读:
    bzoj2888: 资源运输
    [ SDOI 2009 ] HH的项链 & [ HEOI 2012 ] 采花
    [ POI 2017 ] Podzielno
    [ HAOI 2011 ] Problem A
    [ SDOI 2011 ] 打地鼠
    [ SCOI 2007 ] Perm
    [ POI 2011 ] Dynamite
    [ BZOJ 3038 & 3211 / SPOJ GSS4 ] 上帝造题七分钟2 / 花神游历各国
    [ BZOJ 3445 ] Roadblock
    [ ZJOI 2006 ] Mahjong
  • 原文地址:https://www.cnblogs.com/yjiu1990/p/9263254.html
Copyright © 2011-2022 走看看