红联Linux门户
Linux帮助

python中多线程如何用Ctrl+C终止

发布时间:2016-04-02 09:16:02来源:linux网站作者:初心不忘

在编写python多线程程序时,发现用Ctrl+C无法终止,就算用Ctrl+Z强制当前进程转为后台并使之停止,而实际上并未停止,用ps命令一查还在运行,于是上网上找资料,动手实践,记录分享一下解决办法。


在你的代码中增加如下类:
class Watcher(): 

def __init__(self): 
self.child = os.fork() 
if self.child == 0: 
return 
else: 
self.watch() 

def watch(self): 
try: 
os.wait() 
except KeyboardInterrupt: 
self.kill() 
sys.exit() 

def kill(self): 
try: 
os.kill(self.child, signal.SIGKILL) 
except OSError: 
pass 


然后在你的线程启动之前,实例化一个Watcher对象:

.......... 
Watch() 
# 你的线程创建代码 


之后你就能发现能用Ctrl+C结束你的多线程程序了,而且是彻底结束。


本文永久更新地址:http://www.linuxdiyf.com/linux/19459.html