Add links to discussion of multiprocessing spawn/forkserver feature.
This commit is contained in:
parent
748bad2cd0
commit
ac18622126
|
@ -101,6 +101,8 @@ necessary, see :ref:`multiprocessing-programming`.
|
||||||
Contexts and start methods
|
Contexts and start methods
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
.. _multiprocessing-start-methods:
|
||||||
|
|
||||||
Depending on the platform, :mod:`multiprocessing` supports three ways
|
Depending on the platform, :mod:`multiprocessing` supports three ways
|
||||||
to start a process. These *start methods* are
|
to start a process. These *start methods* are
|
||||||
|
|
||||||
|
@ -147,7 +149,7 @@ there may some "leaked" semaphores. (Unlinking the named semaphores
|
||||||
is a serious matter since the system allows only a limited number, and
|
is a serious matter since the system allows only a limited number, and
|
||||||
they will not be automatically unlinked until the next reboot.)
|
they will not be automatically unlinked until the next reboot.)
|
||||||
|
|
||||||
To select the a start method you use the :func:`set_start_method` in
|
To select a start method you use the :func:`set_start_method` in
|
||||||
the ``if __name__ == '__main__'`` clause of the main module. For
|
the ``if __name__ == '__main__'`` clause of the main module. For
|
||||||
example::
|
example::
|
||||||
|
|
||||||
|
|
|
@ -114,8 +114,8 @@ Significantly Improved Library Modules:
|
||||||
* New :mod:`pickle` :ref:`protocol 4 <whatsnew-protocol-4>` (:pep:`3154`)
|
* New :mod:`pickle` :ref:`protocol 4 <whatsnew-protocol-4>` (:pep:`3154`)
|
||||||
* :ref:`SHA-3 (Keccak) support <whatsnew-sha3>` for :mod:`hashlib`.
|
* :ref:`SHA-3 (Keccak) support <whatsnew-sha3>` for :mod:`hashlib`.
|
||||||
* :ref:`TLSv1.1 and TLSv1.2 support <whatsnew-tls-11-12>` for :mod:`ssl`.
|
* :ref:`TLSv1.1 and TLSv1.2 support <whatsnew-tls-11-12>` for :mod:`ssl`.
|
||||||
* :mod:`multiprocessing` now has option to avoid using :func:`os.fork`
|
* :mod:`multiprocessing` now has :ref:`an option to avoid using os.fork
|
||||||
on Unix (:issue:`8713`).
|
on Unix <whatsnew-multiprocessing-no-fork>` (:issue:`8713`).
|
||||||
* :mod:`email` has a new submodule, :mod:`~email.contentmanager`, and
|
* :mod:`email` has a new submodule, :mod:`~email.contentmanager`, and
|
||||||
a new :mod:`~email.message.Message` subclass
|
a new :mod:`~email.message.Message` subclass
|
||||||
(:class:`~email.contentmanager.EmailMessage`) that simplify MIME handling.
|
(:class:`~email.contentmanager.EmailMessage`) that simplify MIME handling.
|
||||||
|
@ -633,14 +633,17 @@ mmap objects can now be weakref'ed.
|
||||||
multiprocessing
|
multiprocessing
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
On Unix, two new *start methods* (``spawn`` and ``forkserver``) have been
|
.. _whatsnew-multiprocessing-no-fork:
|
||||||
added for starting processes using :mod:`multiprocessing`. These make
|
|
||||||
the mixing of processes with threads more robust, and the ``spawn``
|
On Unix, two new :ref:`start methods <multiprocessing-start-methods>`
|
||||||
method matches the semantics that multiprocessing has always used on
|
(``spawn`` and ``forkserver``) have been added for starting processes using
|
||||||
Windows. (Contributed by Richard Oudkerk in :issue:`8713`).
|
:mod:`multiprocessing`. These make the mixing of processes with threads more
|
||||||
|
robust, and the ``spawn`` method matches the semantics that multiprocessing has
|
||||||
|
always used on Windows. (Contributed by Richard Oudkerk in :issue:`8713`).
|
||||||
|
|
||||||
Also, except when using the old *fork* start method, child processes
|
Also, except when using the old *fork* start method, child processes
|
||||||
will no longer inherit unneeded handles/file descriptors from their parents.
|
will no longer inherit unneeded handles/file descriptors from their parents
|
||||||
|
(part of :issue:`8713`).
|
||||||
|
|
||||||
:mod:`multiprocessing` now relies on :mod:`runpy` (which implements the
|
:mod:`multiprocessing` now relies on :mod:`runpy` (which implements the
|
||||||
``-m`` switch) to initialise ``__main__`` appropriately in child processes
|
``-m`` switch) to initialise ``__main__`` appropriately in child processes
|
||||||
|
|
Loading…
Reference in New Issue