Python多线程http服务器

时间:2017-03-18 19:55:19

标签: python

我正在尝试编写一个简单的多线程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")

1 个答案:

答案 0 :(得分:0)

您正在呼叫handle_request,它会一个接一个地处理一个请求。您必须使用serve_forever,以便服务器可以自动处理请求。