Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python多线程http服务器_Python - Fatal编程技术网

Python多线程http服务器

Python多线程http服务器,python,Python,我正在尝试编写一个简单的多线程http服务器,它在5秒后响应请求。 这个代码不起作用,两个同时的请求需要10秒才能完成,我不明白为什么 from socketserver import ThreadingMixIn from http.server import SimpleHTTPRequestHandler, HTTPServer, BaseHTTPRequestHandler class ThreadingSimpleServer(ThreadingMixIn, HTTPServer):

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

您正在调用
handle\u request
,它处理一个又一个请求。您必须使用
永远服务
,这样服务器才能自动处理请求。

仅仅通过永远服务来更改请求的处理似乎也不起作用,我是否遗漏了其他内容?正如我在问题中所说,当我使用chrome中的两个选项卡连接到服务器时,它们会按顺序得到回答,它需要5*2秒。你测量时间吗?对我来说,每个请求只需要5秒。对我来说,每个请求也只需要5秒,但如果我打开两个chrome标签,然后快速点击这两个标签上的刷新,我发现完成大约需要10秒。另外,我可以看到第一个选项卡在大约5秒后出现响应,而第二个选项卡在我看来会继续旋转5秒,您的浏览器有问题,而不是服务器代码有问题。