diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2017-12-20 18:19:18 (GMT) |
---|---|---|
committer | Antoine Pitrou <pitrou@free.fr> | 2017-12-20 18:19:18 (GMT) |
commit | 4aa84e728565a15a82727b9b971126e355f47e9d (patch) | |
tree | f6d95878c752081bec108984d22f0d8283749894 /Doc | |
parent | 75d1ca26b0b820dd0f173c924887a93581ce8642 (diff) | |
download | cpython-4aa84e728565a15a82727b9b971126e355f47e9d.zip cpython-4aa84e728565a15a82727b9b971126e355f47e9d.tar.gz cpython-4aa84e728565a15a82727b9b971126e355f47e9d.tar.bz2 |
bpo-32306: Clarify c.f.Executor.map() documentation (GH-4947) (#4948)
The built-in map() function collects function arguments lazily, but concurrent.futures.Executor.map() does so eagerly.
(cherry picked from commit a7a751dd7b08a5bb6cb399c1b2a6ca7b24aba51d)
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/library/concurrent.futures.rst | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/Doc/library/concurrent.futures.rst b/Doc/library/concurrent.futures.rst index d85576b..9794e73 100644 --- a/Doc/library/concurrent.futures.rst +++ b/Doc/library/concurrent.futures.rst @@ -40,21 +40,29 @@ Executor Objects .. method:: map(func, *iterables, timeout=None, chunksize=1) - Equivalent to :func:`map(func, *iterables) <map>` except *func* is executed - asynchronously and several calls to *func* may be made concurrently. The - returned iterator raises a :exc:`concurrent.futures.TimeoutError` if - :meth:`~iterator.__next__` is called and the result isn't available + Similar to :func:`map(func, *iterables) <map>` except: + + * the *iterables* are collected immediately rather than lazily; + + * *func* is executed asynchronously and several calls to + *func* may be made concurrently. + + The returned iterator raises a :exc:`concurrent.futures.TimeoutError` + if :meth:`~iterator.__next__` is called and the result isn't available after *timeout* seconds from the original call to :meth:`Executor.map`. *timeout* can be an int or a float. If *timeout* is not specified or - ``None``, there is no limit to the wait time. If a call raises an - exception, then that exception will be raised when its value is - retrieved from the iterator. When using :class:`ProcessPoolExecutor`, this - method chops *iterables* into a number of chunks which it submits to the - pool as separate tasks. The (approximate) size of these chunks can be - specified by setting *chunksize* to a positive integer. For very long - iterables, using a large value for *chunksize* can significantly improve - performance compared to the default size of 1. With :class:`ThreadPoolExecutor`, - *chunksize* has no effect. + ``None``, there is no limit to the wait time. + + If a *func* call raises an exception, then that exception will be + raised when its value is retrieved from the iterator. + + When using :class:`ProcessPoolExecutor`, this method chops *iterables* + into a number of chunks which it submits to the pool as separate + tasks. The (approximate) size of these chunks can be specified by + setting *chunksize* to a positive integer. For very long iterables, + using a large value for *chunksize* can significantly improve + performance compared to the default size of 1. With + :class:`ThreadPoolExecutor`, *chunksize* has no effect. .. versionchanged:: 3.5 Added the *chunksize* argument. |