twisted.python.threadpool.ThreadPool
class documentationtwisted.python.threadpool
(View In Hierarchy)
Known subclasses: twisted.internet.test.test_resolver.DeterministicThreadPool, twisted.test.test_threadpool.MemoryPool
This class (hopefully) generalizes the functionality of a pool of threads to which work can be dispatched.
callInThread
and stop
should only be called from a single thread.
Instance Variable | started | Whether or not the thread pool is currently running. (type: bool ) |
Instance Variable | threads | List of workers currently running in this thread pool. (type: list ) |
Method | __init__ | Create a new threadpool. |
Method | workers | For legacy compatibility purposes, return a total number of workers. |
Method | working | For legacy compatibility purposes, return the number of busy workers as expressed by a list the length of that number. |
Method | waiters | For legacy compatibility purposes, return the number of idle workers as expressed by a list the length of that number. |
Method | start | Start the threadpool. |
Method | startAWorker | Increase the number of available workers for the thread pool by 1, up to
the maximum allowed by ThreadPool.max . |
Method | stopAWorker | Decrease the number of available workers by 1, by quitting one as soon as it's idle. |
Method | __setstate__ | Undocumented |
Method | __getstate__ | Undocumented |
Method | callInThread | Call a callable object in a separate thread. |
Method | callInThreadWithCallback | Call a callable object in a separate thread and call
onResult with the return value, or a twisted.python.failure.Failure
if the callable raises an exception. |
Method | stop | Shutdown the threads in the threadpool. |
Method | adjustPoolsize | Adjust the number of available threads by setting min and
max to new values. |
Method | dumpStats | Dump some plain-text informational messages to the log about the state
of this ThreadPool . |
Instance Variable | _pool | A hook for testing. (type: callable compatible with _pool ) |
Method | _queue | For legacy compatibility purposes, return an object with a
qsize method that indicates the amount of work not yet
allocated to a worker. |
Method | _generateName | Generate a name for a new pool thread. |
For legacy compatibility purposes, return a total number of workers.
Returns | the current number of workers, both idle and busy (but not those that have
been quit by ThreadPool.adjustPoolsize ) (type: int ) |
For legacy compatibility purposes, return an object with a
qsize
method that indicates the amount of work not yet
allocated to a worker.
Returns | an object with a qsize method. |
Increase the number of available workers for the thread pool by 1, up to
the maximum allowed by ThreadPool.max
.
Generate a name for a new pool thread.
Returns | A distinctive name for the thread. (type: native str ) |
Decrease the number of available workers by 1, by quitting one as soon as it's idle.
Call a callable object in a separate thread.
Parameters | func | callable object to be called in separate thread |
args | positional arguments to be passed to func | |
kw | keyword args to be passed to func |
Call a callable object in a separate thread and call
onResult
with the return value, or a twisted.python.failure.Failure
if the callable raises an exception.
The callable is allowed to block, but the onResult
function
must not block and should perform as little work as possible.
A typical action for onResult
for a threadpool used with a
Twisted reactor would be to schedule a twisted.internet.defer.Deferred
to fire in the main reactor thread using .callFromThread
.
Note that onResult
is called inside the separate thread, not
inside the reactor thread.
Parameters | onResult | a callable with the signature (success, result) . If the
callable returns normally, onResult is called with
(True, result) where result is the return value
of the callable. If the callable throws an exception,
onResult is called with (False, failure) .
Optionally, |
func | callable object to be called in separate thread | |
args | positional arguments to be passed to func | |
kw | keyword arguments to be passed to func |
Adjust the number of available threads by setting min
and
max
to new values.
Parameters | minthreads | The new value for ThreadPool.min . |
maxthreads | The new value for ThreadPool.max . |
Dump some plain-text informational messages to the log about the state
of this ThreadPool
.