我正在用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()
答案 0 :(得分:0)
这是您需要执行的操作
将您的线程设为daemon
,守护线程将导致在主线程退出时退出所有线程。
您还需要捕获ctr-c
信号(这是python中的KeyboardInterrupt
异常),然后执行简单的sys.exit(1)
。
在使用python2
时,您可能会遇到一些奇怪的情况,即它无法按预期工作,但是如果您使用的是python3
,则应该可以正常工作。