bpo-31639: Use threads in http.server module. (GH-5018)

(cherry picked from commit 8bcfa02e4b1b65634e526e197588bc600674c80b)

Co-authored-by: Julien Palard <julien@palard.fr>
diff --git a/Doc/library/http.server.rst b/Doc/library/http.server.rst
index c98843de..4fe46cb 100644
--- a/Doc/library/http.server.rst
+++ b/Doc/library/http.server.rst
@@ -33,9 +33,16 @@
    :attr:`server_port`. The server is accessible by the handler, typically
    through the handler's :attr:`server` instance variable.
 
+.. class:: ThreadedHTTPServer(server_address, RequestHandlerClass)
 
-The :class:`HTTPServer` must be given a *RequestHandlerClass* on instantiation,
-of which this module provides three different variants:
+   This class is identical to HTTPServer but uses threads to handle
+   requests by using the :class:`~socketserver.ThreadingMixin`. This
+   is usefull to handle web browsers pre-opening sockets, on which
+   :class:`HTTPServer` would wait indefinitly.
+
+The :class:`HTTPServer` and :class:`ThreadedHTTPServer` must be given
+a *RequestHandlerClass* on instantiation, of which this module
+provides three different variants:
 
 .. class:: BaseHTTPRequestHandler(request, client_address, server)