bpo-39877: Deprecate PyEval_InitThreads() (GH-18892)

Deprecated PyEval_InitThreads() and PyEval_ThreadsInitialized().
Calling PyEval_InitThreads() now does nothing.
diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst
index 14049ee..c34b117 100644
--- a/Doc/c-api/init.rst
+++ b/Doc/c-api/init.rst
@@ -842,12 +842,12 @@
       single: PyEval_SaveThread()
       single: PyEval_RestoreThread()
 
-   Initialize and acquire the global interpreter lock.  It should be called in the
-   main thread before creating a second thread or engaging in any other thread
-   operations such as ``PyEval_ReleaseThread(tstate)``. It is not needed before
-   calling :c:func:`PyEval_SaveThread` or :c:func:`PyEval_RestoreThread`.
+   Deprecated function which does nothing.
 
-   This is a no-op when called for a second time.
+   In Python 3.6 and older, this function created the GIL if it didn't exist.
+
+   .. versionchanged:: 3.9
+      The function now does nothing.
 
    .. versionchanged:: 3.7
       This function is now called by :c:func:`Py_Initialize()`, so you don't
@@ -856,6 +856,8 @@
    .. versionchanged:: 3.2
       This function cannot be called before :c:func:`Py_Initialize()` anymore.
 
+   .. deprecated-removed:: 3.9 3.11
+
    .. index:: module: _thread
 
 
@@ -868,6 +870,8 @@
    .. versionchanged:: 3.7
       The :term:`GIL` is now initialized by :c:func:`Py_Initialize()`.
 
+   .. deprecated-removed:: 3.9 3.11
+
 
 .. c:function:: PyThreadState* PyEval_SaveThread()