Python Http服务器:当共享队列有N个项目时关闭服务器

Python Http服务器:当共享队列有N个项目时关闭服务器,python,http,simplehttpserver,Python,Http,Simplehttpserver,我正在使用pythonBaseHttpServer实现一个HTTP服务器 我有一个由不同线程共享的队列。每次我的处理程序收到请求时,它都会将其放入共享的队列中。当队列中的请求数达到n时,我想关闭服务器。以下是我现在拥有的: while self.queue.qsize() != n self.server.handle_request() 我对这种方法的担心是,当检查self.queue.qsize()时,它可能还不是n,但在这之后大小立即变为n(因为队列由多个线程共享),并且不再有

我正在使用python
BaseHttpServer
实现一个HTTP服务器

我有一个由不同线程共享的
队列
。每次我的处理程序收到请求时,它都会将其放入共享的
队列中。当
队列中的请求数达到
n
时,我想关闭服务器。以下是我现在拥有的:

while self.queue.qsize() != n
     self.server.handle_request()

我对这种方法的担心是,当检查
self.queue.qsize()
时,它可能还不是n,但在这之后大小立即变为n(因为
队列由多个线程共享),并且不再有后续请求。如果没有请求,
server.handle\u request()
会阻塞,那么服务器可能会再次关闭。有办法解决此问题吗?

将线程绑定到进程:

httpd = BaseHTTPServer.HTTPServer(('', 80), MyHandler)
print("Starting server in thread")
threading.Thread(target=httpd.serve_forever).start()
关闭:

toKill = threading.Event()

# in handler
toKill.set()

# in main thread
toKill.wait()
httpd.shutdown()