Kaydet (Commit) ac186221 authored tarafından R David Murray's avatar R David Murray

Add links to discussion of multiprocessing spawn/forkserver feature.

üst 748bad2c
...@@ -101,6 +101,8 @@ necessary, see :ref:`multiprocessing-programming`. ...@@ -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 ...@@ -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: ...@@ -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. ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment