我正在用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()
这是你需要做的事情来让它工作
将线程设为
daemon
,后台线程化将导致在主线程退出时退出所有线程。你知道吗您还需要捕获
ctr-c
信号,它是python中的KeyboardInterrupt
异常,然后执行一个简单的sys.exit(1)
。你知道吗使用
python2
可能会出现一些奇怪的情况,它不能按预期工作,但如果使用python3
,它应该可以正常工作。你知道吗相关问题 更多 >
编程相关推荐