我试图在python中创建多线程的web服务器,但它一次只响应一个请求,我找不出原因。你能帮我吗?python中的多线程web服务器
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
from SocketServer import ThreadingMixIn
from BaseHTTPServer import HTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
from time import sleep
class ThreadingServer(ThreadingMixIn, HTTPServer):
pass
class RequestHandler(SimpleHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'text/plain')
sleep(5)
response = 'Slept for 5 seconds..'
self.send_header('Content-length', len(response))
self.end_headers()
self.wfile.write(response)
ThreadingServer(('', 8000), RequestHandler).serve_forever()
使用非阻塞套接字,您可以服务数千个客户端。无需为每个请求创建线程。 –
@ shiplu.mokadd.im你可以请回答..你的帮助将不胜感激 –
@Pilot这里需要两件事情。 'select()'和非阻塞。 Python有一个[socket](http://docs.python.org/2/library/socket.html)库。 IBM在使用select()的套接字编程中得到了一些[好文章](https://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=%2Frzab6%2Frzab6xnonblock.htm)。 –