我正在尝试在线程中的python中设置一个简单的http服务器。
Server started
Sleeping for 20 seconds
Got shut down request
127.0.0.1 - - [09/Jul/2016 12:17:17] "GET /shutdown HTTP/1.1" 200 -
Server finished serving
Finished sleeping
MainThread
serverthread
True
我的假设是,一旦_run_http_server完成运行,线程应该停止运行但它没有。我得到这个输出,但线程一直在运行。任何人都可以指出为什么线程不会停止?
rvm install 2.2
答案 0 :(得分:2)
在您的代码中,您有自己的请求处理循环(而不是使用HTTPServer.serve_forever()
)。然而,你调用HTTPServer.shutdown()
,其职责是告诉serve_forever()
循环停止并等到它。由于serve_forever()
甚至没有启动,shutdown()
永远不会返回(它实际上正在等待serve_forever()
启动并立即停止)。删除self._http_server.shutdown()
行可解决问题。