前言

Python的threading模块,没有提供线程退出的方法。
如果程序多线程是死循环,即使CTRL+C也没有任何效果。

响应方法

1
2
3
4
5
6
7
8
for t in thread_list:
# 设置守护
t.setDaemon(True)
t.start()

# 响应Ctrl+C
while True:
pass

补充

setDaemon(True):,是把子线程设置为守护线程,主线程和子线程会同时运行,主线程结束运行后,无论子线程运行与否,都会和主线程一起结束。
所以我们结束空循环的时候,子线程也会退出。

join():join函数会使得主调线程阻塞,直到被调用线程运行结束或超时,才执行主线程。

只需要设置守护线程,挂一个空循环就好了

End.