mirror of
https://github.com/python/cpython.git
synced 2025-10-01 12:52:18 +00:00
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 a7a751dd7b
)
This commit is contained in:
parent
75d1ca26b0
commit
4aa84e7285
1 changed files with 21 additions and 13 deletions
|
@ -40,21 +40,29 @@ Executor Objects
|
||||||
|
|
||||||
.. method:: map(func, *iterables, timeout=None, chunksize=1)
|
.. method:: map(func, *iterables, timeout=None, chunksize=1)
|
||||||
|
|
||||||
Equivalent to :func:`map(func, *iterables) <map>` except *func* is executed
|
Similar to :func:`map(func, *iterables) <map>` except:
|
||||||
asynchronously and several calls to *func* may be made concurrently. The
|
|
||||||
returned iterator raises a :exc:`concurrent.futures.TimeoutError` if
|
* the *iterables* are collected immediately rather than lazily;
|
||||||
:meth:`~iterator.__next__` is called and the result isn't available
|
|
||||||
|
* *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`.
|
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
|
*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
|
``None``, there is no limit to the wait time.
|
||||||
exception, then that exception will be raised when its value is
|
|
||||||
retrieved from the iterator. When using :class:`ProcessPoolExecutor`, this
|
If a *func* call raises an exception, then that exception will be
|
||||||
method chops *iterables* into a number of chunks which it submits to the
|
raised when its value is retrieved from the iterator.
|
||||||
pool as separate tasks. The (approximate) size of these chunks can be
|
|
||||||
specified by setting *chunksize* to a positive integer. For very long
|
When using :class:`ProcessPoolExecutor`, this method chops *iterables*
|
||||||
iterables, using a large value for *chunksize* can significantly improve
|
into a number of chunks which it submits to the pool as separate
|
||||||
performance compared to the default size of 1. With :class:`ThreadPoolExecutor`,
|
tasks. The (approximate) size of these chunks can be specified by
|
||||||
*chunksize* has no effect.
|
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
|
.. versionchanged:: 3.5
|
||||||
Added the *chunksize* argument.
|
Added the *chunksize* argument.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue