Python 3.7+http.serverпонятие
http.server.ThreadingHTTPServer
серверы
Вариант HTTPServer, обрабатывающий каждый запрос в отдельном потоке; именно его запускает python -m http.server.
Синтаксис
server = ThreadingHTTPServer(server_address, RequestHandlerClass)
Потоки создаются с daemon_threads = True: при выходе из программы незаконченные ответы обрываются, а не дожидаются. Обработчики работают параллельно, поэтому общие данные (счётчик, словарь на self.server) нужно защищать threading.Lock. Он нужен даже для одного браузера: браузер держит открытыми соединения заранее, и однопоточный HTTPServer на таком соединении может зависнуть.
Примеры
import socketserver
from http.server import ThreadingHTTPServer, HTTPServer
print(issubclass(ThreadingHTTPServer, socketserver.ThreadingMixIn)) # → True
print(issubclass(ThreadingHTTPServer, HTTPServer)) # → True
print(ThreadingHTTPServer.daemon_threads) # → True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности