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

    什么是守护线程:在后台运行,为其他线程提供服务的线程成为守护线程。

    为什么要引入守护线程:

    thread模块不支持守护线程的概念,当主线程退出时,所有的子线程都将终止,不管它们是否仍在工作,

    如果你不希望发生这种行为,就要引入守护线程的概念。

    守护线程的调用格式:thread.setDaemon(True)

    如何使用守护线程:

    1.当只有一个子线程并且为守护线程,那么这个守护线程就会等待主线程运行完毕后挂掉

    2.当有多个子线程时,守护线程就会等待所有的子线程运行完毕后,守护线程才会挂掉

    什么时候设置守护线程:

    如果主线程准备退出时,不需要等待某些子线程执行完成,就可以为这些子线程设置守护线程标记。该标记为真时,表示该线程是不重要的,或者说该线程只是用来等待客户端请求而不做任何其它事情。

    使用守护线程的前提:

    1.要将一个线程设置为守护线程,需要在启动线程之前执行如下赋值语句:thread.daemon=True。

    2.要检查线程的守护状态,也只需要检查这个值即可。一个新的子线程会继承父线程的守护标记。

    3.主线程将在所有非守护线程退出之后才退出,换句话说,就是没有存活的非守护线程时。

    守护线程在threading模块中的工作方式:

    守护线程一般是一个等待客户端请求服务的服务器。如果没有客户端请求,守护线程就是空闲的,如果把一个线程设置为守护线程,就表示这个线程是不重要的,进程退出时就不需要等待这个线程执行完成。

    注意:

    1、守护线程会在该进程内所有非守护线程全部都运行完毕后,守护线程才会挂掉。

    2、守护线程守护的是:当前进程内所有的子线程!

    3、主线程在其他非守护线程运行完毕后才算运行完毕,守护线程在此时被回收。

  • 相关阅读:
    关于导出数据库提示 outfile disabled的解决方案
    mysql的日志管理
    Node.js aitaotu图片批量下载Node.js爬虫1.00版
    Node.js umei图片批量下载Node.js爬虫1.00
    Node.js abaike图片批量下载Node.js爬虫1.01版
    JS 数字左补零函数
    Node.js 向一个文件添加内容
    JS 取得当前日期时间(文本形式)
    Node.js abaike图片批量下载Node.js爬虫1.00版
    Node.js nvshens图片批量下载爬虫 1.00
  • 原文地址:https://www.cnblogs.com/mengxinfeng/p/12545530.html
Copyright © 2011-2022 走看看