diff options
| author | Antoine Pitrou <solipsis@pitrou.net> | 2014-10-04 18:20:10 (GMT) |
|---|---|---|
| committer | Antoine Pitrou <solipsis@pitrou.net> | 2014-10-04 18:20:10 (GMT) |
| commit | 4aae276eca9a9213ad45158d30ae2f15843dd463 (patch) | |
| tree | e3ec365b19f7eb88212595c3ea47f3362bfe75e3 /Lib/concurrent/futures/_base.py | |
| parent | e4f47088af0040d73449d0cb0fe1e6d863f3ad07 (diff) | |
| download | cpython-4aae276eca9a9213ad45158d30ae2f15843dd463.zip cpython-4aae276eca9a9213ad45158d30ae2f15843dd463.tar.gz cpython-4aae276eca9a9213ad45158d30ae2f15843dd463.tar.bz2 | |
Issue #11271: concurrent.futures.Executor.map() now takes a *chunksize*
argument to allow batching of tasks in child processes and improve
performance of ProcessPoolExecutor. Patch by Dan O'Reilly.
Diffstat (limited to 'Lib/concurrent/futures/_base.py')
| -rw-r--r-- | Lib/concurrent/futures/_base.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Lib/concurrent/futures/_base.py b/Lib/concurrent/futures/_base.py index c13b3b6..9e44713 100644 --- a/Lib/concurrent/futures/_base.py +++ b/Lib/concurrent/futures/_base.py @@ -520,7 +520,7 @@ class Executor(object): """ raise NotImplementedError() - def map(self, fn, *iterables, timeout=None): + def map(self, fn, *iterables, timeout=None, chunksize=1): """Returns a iterator equivalent to map(fn, iter). Args: @@ -528,6 +528,10 @@ class Executor(object): passed iterables. timeout: The maximum number of seconds to wait. If None, then there is no limit on the wait time. + chunksize: The size of the chunks the iterable will be broken into + before being passed to a child process. This argument is only + used by ProcessPoolExecutor; it is ignored by + ThreadPoolExecutor. Returns: An iterator equivalent to: map(func, *iterables) but the calls may |
