让Python多线程响应Ctrl+C

Lkeme SVIP+

前言

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.

  • 标题: 让Python多线程响应Ctrl+C
  • 作者: Lkeme
  • 创建于 : 2018-09-23 20:31:51
  • 更新于 : 2024-04-15 15:30:53
  • 链接: https://mudew.com/2018/09/23/让Python多线程响应Ctrl-C/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
此页目录
让Python多线程响应Ctrl+C