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

2024-05-18 14:29:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用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()

Tags: 程序服务器truetarget线程threadstartlisten
1条回答
网友
1楼 · 发布于 2024-05-18 14:29:46

这是你需要做的事情来让它工作

将线程设为daemon,后台线程化将导致在主线程退出时退出所有线程。你知道吗

您还需要捕获ctr-c信号,它是python中的KeyboardInterrupt异常,然后执行一个简单的sys.exit(1)。你知道吗

使用python2可能会出现一些奇怪的情况,它不能按预期工作,但如果使用python3,它应该可以正常工作。你知道吗

相关问题 更多 >

    热门问题