Python Glossary English

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Сообщить о неточности