Python Glossary Русский

Python 3.7+http.serverterm

http.server.ThreadingHTTPServer

servers

A variant of HTTPServer that handles every request in its own thread; it is what python -m http.server runs.

Syntax

server = ThreadingHTTPServer(server_address, RequestHandlerClass)

Threads are created with daemon_threads = True: when the program exits, unfinished responses are cut off instead of awaited. Handlers run concurrently, so shared data (a counter, a dict on self.server) must be guarded with threading.Lock. It is needed even for a single browser: browsers pre-open connections, and a single-threaded HTTPServer can hang on such a connection.

Examples

import socketserver
from http.server import ThreadingHTTPServer, HTTPServer
print(issubclass(ThreadingHTTPServer, socketserver.ThreadingMixIn))  # → True
print(issubclass(ThreadingHTTPServer, HTTPServer))  # → True
print(ThreadingHTTPServer.daemon_threads)  # → True

See also

Open in the full glossarydocs.python.orgReport an inaccuracy