Python中用Ctrl+C终止多线程程序的问题解决
很明显,当所有线程都完成自己的任务后,进程会正常退出。你当然可以用ps查找到进程号,然后kill -9杀掉,但这样太繁琐了,捕捉Ctrl+C是最自然的想法。上面示例程序中已经捕捉了这个信号,并修改全局变量is_exit,线程中会检测这个变量,及时退出。但事实上这个程序并不work,当你按下Ctrl+C时,程序照常运行,并无任何响应。完整的代码如下:其实,如果用python写一个服务,也需要这样,因为负责服务的那个线程是永远在那里接收请求的,不会退出,而如果你想用Ctrl+C杀死整个服务,跟上面的压力测试程序是一个道理。总结一下,python多线程中要响应Ctrl+C的信号以杀死整个进程,需要:1.把所有子线程设为Daemon;
下载地址
用户评论