Skip to content

Documentation for multiprocessing module wrongly states that concurrent.futures.ThreadPoolExecutor does not exist #140578

@paternal

Description

@paternal

The documentation for the multiprocessing module reads:

The :mod:multiprocessing module also introduces APIs which do not have
analogs in the :mod:threading module. A prime example of this is the :class:~multiprocessing.pool.Pool object […].

While this is not wrong (there is no such tool in the threading module), it is misleading because such a tool exists elsewhere, in the concurrent.futures module.

Several ways to fix this:

  1. Remove this sentence:

    diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst
    index d18ada3511..02d6946f1d 100644
    --- a/Doc/library/multiprocessing.rst
    +++ b/Doc/library/multiprocessing.rst
    @@ -22,8 +22,7 @@ to this, the :mod:`multiprocessing` module allows the programmer to fully
     leverage multiple processors on a given machine.  It runs on both POSIX and
     Windows.
     
    -The :mod:`multiprocessing` module also introduces APIs which do not have
    -analogs in the :mod:`threading` module.  A prime example of this is the
    +The :mod:`multiprocessing` module also introduces the
     :class:`~multiprocessing.pool.Pool` object which offers a convenient means of
     parallelizing the execution of a function across multiple input values,
     distributing the input data across processes (data parallelism).  The following
  2. Give another example of a feature absent from the threading module:

    diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst
    index d18ada3511..684e389f21 100644
    --- a/Doc/library/multiprocessing.rst
    +++ b/Doc/library/multiprocessing.rst
    @@ -22,8 +22,7 @@ to this, the :mod:`multiprocessing` module allows the programmer to fully
     leverage multiple processors on a given machine.  It runs on both POSIX and
     Windows.
     
    -The :mod:`multiprocessing` module also introduces APIs which do not have
    -analogs in the :mod:`threading` module.  A prime example of this is the
    +The :mod:`multiprocessing` module also introduces the
     :class:`~multiprocessing.pool.Pool` object which offers a convenient means of
     parallelizing the execution of a function across multiple input values,
     distributing the input data across processes (data parallelism).  The following
    @@ -44,6 +43,8 @@ will print to standard output ::
     
        [1, 4, 9]
     
    +The :mod:`multiprocessing` module also introduces APIs which do not have
    +analogs in the :mod:`threading` module, like the ability to :meth:`terminate <Process.terminate>`, :meth:`interrupt <Process.interrupt>` or :meth:`kill <Process.kill>` a running process.
     
     .. seealso::
     

Thanks for your work!

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status

    No status

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions