zoukankan      html  css  js  c++  java
  • python其中一个子线程,则退出全部线程,再退出进程

    import threading, signal

    is_exit = False


    def write_login(self): global is_exit write_log('login rsync start!!!') count = 0 data_list = [] data_line = '' while not is_exit: # if debug, then log_array = self._redis.lrange(self._list_name, 0, 0), data_line = log_json try: log_array = self._redis.lrange(self._list_name, 0, 9999) except Exception,e: write_log("[write_login][redis err]" + str(e) + data_line) data_list = [] is_exit = True return

      

    https://www.douban.com/note/286438085/

    python多线程中要响应Ctrl+C的信号以杀死整个进程,需要:
    1.把所有子线程设为Daemon;
    2.使用isAlive()函数判断所有子线程是否完成,而不是在主线程中用join()函数等待完成;
    3.写一个响应Ctrl+C信号的函数,修改全局变量,使得各子线程能够检测到,并正常退出。
    4.isAlive的循环判断要写在main里,否则无法接受中断信号

  • 相关阅读:
    字符串和编码
    Python基础
    输入和输出
    Python代码运行助手
    使用文本编辑器
    第一个Python程序
    pycharm中创建并设置docker解释器
    docker 在windows上的使用
    Python time datetime模块
    Linux安装字体文件
  • 原文地址:https://www.cnblogs.com/linn/p/5391463.html
Copyright © 2011-2022 走看看