zoukankan      html  css  js  c++  java
  • 第十五章、并发编程之守护线程

    第十五章、并发编程之守护线程

    # 守护线程 守护的是非守护线程(主线程也是非守护进程)
    from threading import Thread,enumerate,currentThread
    import time
    
    def task():
        print('守护线程开始')
        print(currentThread())
        time.sleep(20)
        # print('守护线程结束')
    
    def task2():
        print('子线程 start')
        time.sleep(5)
        print(enumerate())
        print('子线程 end')
    
    if __name__ == '__main__':
        t1 = Thread(target=task)
        t2 = Thread(target=task2)
        t1.daemon = True
        t2.start()
        t1.start()
        print('主')
    

    守护线程:非守护线程代码运行完毕,守护线程也就结束(守护的是非守护线程)

    主线程在其他非守护线程运行完毕后才算结束(守护线程在此时就会被回收

    强调:主线程也是非守护线程(进程包含了线程)

    总结:引入守护进程的原因是主线程的结束意味着进程结束,进程整体的资源都会被回收,而进程必须保证非守护线程都运行完毕后才能结束

    守护进程和守护线程的区别

    • 守护进程:主进程代码运行完毕,守护进程也就结束
    • 守护线程:非守护线程运行完毕,守护线程结束
  • 相关阅读:
    上经 -- 乾【卦一】乾为天(三)
    上经 -- 乾【卦一】乾为天(一)
    8. Shell 文件包含
    7. Shell 函数
    6. Shell 流程控制
    5. test命令
    4. printf 命令
    3. Shell 基本运算符
    2. Shell 传递参数
    shell介绍
  • 原文地址:https://www.cnblogs.com/demiao/p/11536608.html
Copyright © 2011-2022 走看看