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