Add links to discussion of multiprocessing spawn/forkserver feature.

This commit is contained in:
R David Murray 2013-12-20 17:23:57 -05:00
parent 748bad2cd0
commit ac18622126
2 changed files with 14 additions and 9 deletions

View File

@ -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::

View File

@ -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