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里,否则无法接受中断信号

上一篇:locate 最快的查找文件的命令 NB


下一篇:xcode7 app loader error itms 90168