Python 如何使用开放客户端连接关闭服务器?
我一直在寻找一种解决方案来终止一个Python 如何使用开放客户端连接关闭服务器?,python,multithreading,socketserver,Python,Multithreading,Socketserver,我一直在寻找一种解决方案来终止一个socketserver。StreamRequestHandler在主线程终止时,由类ThreadingMixIn生成为一个单独的线程。问题在于,socketserver线程虽然是daemonic线程,但只要存在打开的客户端连接,就不会终止,即使在程序关闭时调用其shutdown()方法也是如此。因此,主胎面也没有终止。在或类似的帖子中没有一条建议对我有效 我现在找到了一个解决方案: 类ThreadingMixIn具有一个属性daemonic\u threads
socketserver。StreamRequestHandler
在主线程终止时,由类ThreadingMixIn
生成为一个单独的线程。问题在于,socketserver线程虽然是daemonic线程,但只要存在打开的客户端连接,就不会终止,即使在程序关闭时调用其shutdown()
方法也是如此。因此,主胎面也没有终止。在或类似的帖子中没有一条建议对我有效
我现在找到了一个解决方案:
类ThreadingMixIn
具有一个属性daemonic\u threads
,默认为true:
class ThreadingMixIn:
"""Mix-in class to handle each request in a new thread."""
# Decides how threads will act upon termination of the
# main process
daemon_threads = False
在我的子类中,它当然覆盖了方法handle()
,我现在也在\uuuu init\uuuu
中定义了覆盖:
daemon_threads = True
现在所有客户端请求都是守护进程,当主线程终止时,它们也会终止。美好的
希望这能帮助有类似问题的人