Python如何使用ctrl c终止python中的线程?

时间:2019-03-12 13:21:38

标签: python multithreading

我正在用python开发服务器,现在我需要做一些测试时,才能用 Ctrl + C 完成服务器。

现在,当我按 Ctrl + C 时,程序没有结束,如果我将线程设置在daemon = True上,没错,即使线程仍在运行,也可以使用 Ctrl + C 并完成程序。目前无法使用。为什么?

thread_udp = threading.Thread(target=listen_udp)
thread_tcp = threading.Thread(target=listen_tcp)
thread_udp.daemon = True
thread_tcp.daemon = True
thread_udp.start()
thread_tcp.start()

1 个答案:

答案 0 :(得分:0)

这是您需要执行的操作

将您的线程设为daemon,守护线程将导致在主线程退出时退出所有线程。

您还需要捕获ctr-c信号(这是python中的KeyboardInterrupt异常),然后执行简单的sys.exit(1)

在使用python2时,您可能会遇到一些奇怪的情况,即它无法按预期工作,但是如果您使用的是python3,则应该可以正常工作。