我正在尝试编写一个简单的多线程http服务器,它在5秒后回复请求。 此代码不起作用,两个同时请求需要10秒才能完成,我不明白为什么。
from socketserver import ThreadingMixIn
from http.server import SimpleHTTPRequestHandler, HTTPServer, BaseHTTPRequestHandler
class ThreadingSimpleServer(ThreadingMixIn, HTTPServer):
pass
import sys
import os
import time
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
time.sleep(5)
self.send_response(200)
self.send_header('Content-type','text/html')
self.end_headers()
self.wfile.write("answer")
return
server = ThreadingSimpleServer(('', 8000), Handler)
try:
while 1:
sys.stdout.flush()
server.handle_request()
except KeyboardInterrupt:
print("Finished")
答案 0 :(得分:0)
您正在呼叫handle_request
,它会一个接一个地处理一个请求。您必须使用serve_forever
,以便服务器可以自动处理请求。