python其中一个子线程,则退出全部线程,再退出进程
2016-04-14 16:04
288 查看
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里,否则无法接受中断信号
相关文章推荐
- Show me the code之Python练习册 Q14~16 excel操作
- Python一日一练17----哈希查找
- python 学习5--matplotlib画图实践
- python模块: OS模块
- python——Django(ORM连表操作)
- Python中拼接字符串和数字时报错如何处理
- python的日志输出工具
- 玩转Python机器学习七步法
- 【python】scrapy相关
- python mongoengine
- 老鸟的Python入门教程
- sublime配置python开发
- Python脚本 基础脚本训练
- Python文件处理
- Python语法点滴
- Python 特殊语法:filter、map、reduce、lambda
- dnspod 动态域名更新客户端 in python
- python下划线变量的含义
- Python3:re.complie用法
- 安装PIL,注册表不能识别Python2.7