Python多线程http服务器
我正在尝试编写一个简单的多线程http服务器,它在5秒后响应请求。 这个代码不起作用,两个同时的请求需要10秒才能完成,我不明白为什么Python多线程http服务器,python,Python,我正在尝试编写一个简单的多线程http服务器,它在5秒后响应请求。 这个代码不起作用,两个同时的请求需要10秒才能完成,我不明白为什么 from socketserver import ThreadingMixIn from http.server import SimpleHTTPRequestHandler, HTTPServer, BaseHTTPRequestHandler class ThreadingSimpleServer(ThreadingMixIn, HTTPServer):
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")
您正在调用
handle\u request
,它处理一个又一个请求。您必须使用永远服务
,这样服务器才能自动处理请求。仅仅通过永远服务来更改请求的处理似乎也不起作用,我是否遗漏了其他内容?正如我在问题中所说,当我使用chrome中的两个选项卡连接到服务器时,它们会按顺序得到回答,它需要5*2秒。你测量时间吗?对我来说,每个请求只需要5秒。对我来说,每个请求也只需要5秒,但如果我打开两个chrome标签,然后快速点击这两个标签上的刷新,我发现完成大约需要10秒。另外,我可以看到第一个选项卡在大约5秒后出现响应,而第二个选项卡在我看来会继续旋转5秒,您的浏览器有问题,而不是服务器代码有问题。