diff options
author | Jesse Noller <jnoller@gmail.com> | 2010-01-27 03:05:57 (GMT) |
---|---|---|
committer | Jesse Noller <jnoller@gmail.com> | 2010-01-27 03:05:57 (GMT) |
commit | 654ade3e6afa2527d1f642be28d69e219bd58b71 (patch) | |
tree | 9f540e75bef18a74b76fa72eb7f4b04250ebd417 /Doc/library | |
parent | 2deb5c758adc4a9a55dae93ecaad5af43c344591 (diff) | |
download | cpython-654ade3e6afa2527d1f642be28d69e219bd58b71.zip cpython-654ade3e6afa2527d1f642be28d69e219bd58b71.tar.gz cpython-654ade3e6afa2527d1f642be28d69e219bd58b71.tar.bz2 |
Issue #6963: Added maxtasksperchild argument to multiprocessing.Pool
Diffstat (limited to 'Doc/library')
-rw-r--r-- | Doc/library/multiprocessing.rst | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst index 0782850..7404145 100644 --- a/Doc/library/multiprocessing.rst +++ b/Doc/library/multiprocessing.rst @@ -1537,7 +1537,7 @@ Process Pools One can create a pool of processes which will carry out tasks submitted to it with the :class:`Pool` class. -.. class:: multiprocessing.Pool([processes[, initializer[, initargs]]]) +.. class:: multiprocessing.Pool([processes[, initializer[, initargs[, maxtasksperchild]]]]) A process pool object which controls a pool of worker processes to which jobs can be submitted. It supports asynchronous results with timeouts and @@ -1548,6 +1548,21 @@ with the :class:`Pool` class. *initializer* is not ``None`` then each worker process will call ``initializer(*initargs)`` when it starts. + *maxtasksperchild* is the number of tasks a worker process can complete + before it will exit and be replaced with a fresh worker process, to enable + unused resources to be freed. The default *maxtasksperchild* is None, which + means worker processes will live as long as the pool. + + .. note:: + + Worker processes within a :class:`Pool` typically live for the complete + duration of the Pool's work queue. A frequent pattern found in other + systems (such as Apache, mod_wsgi, etc) to free resources held by + workers is to allow a worker within a pool to complete only a set + amount of work before being exiting, being cleaned up and a new + process spawned to replace the old one. The *maxtasksperchild* + argument to the :class:`Pool` exposes this ability to the end user. + .. method:: apply(func[, args[, kwds]]) Equivalent of the :func:`apply` built-in function. It blocks till the |