python中的多线程HTTP服务器,用于处理get请求

时间:2018-08-27 21:11:07

标签: python python-3.x multithreading python-multithreading simplehttpserver

我需要在python 3中创建一个多线程Web服务器,其中每个请求都获得一个新线程。我遵循了博客中的一个基本示例。但是,服务器始终处于阻塞状态,因为在1个线程中调用的sleep会阻塞其他线程。有人可以帮我吗?

这是我的代码

import time
from http.server import HTTPServer, BaseHTTPRequestHandler
from socketserver import ThreadingMixIn
import threading


class Handler(BaseHTTPRequestHandler):

    def do_GET(self):
        self.send_response(200)
        self.end_headers()
        print('start-->')
        time.sleep(5)
        print('end-->')
        self.wfile.write("Test".encode())


class ThreadingSimpleServer(ThreadingMixIn, HTTPServer):
    pass


def run():
    server = ThreadingSimpleServer(('0.0.0.0', 1234), Handler)
    server.serve_forever()


if __name__ == '__main__':
    run()

我的问题是,如果我向服务器发送2个请求,则第二个请求仅在第一个请求完成后才开始执行。我需要使睡眠处于自己的线程中,而又不影响其他线程。我将不胜感激。

0 个答案:

没有答案