towhee.engine.thread_pool_task_executor.ThreadPoolTaskExecutor

class towhee.engine.thread_pool_task_executor.ThreadPoolTaskExecutor(name: str, cache_path: Optional[str] = None)[source]

Bases: Thread

A thread pool executor. Each device has one Executor.

Parameters:
  • name

    (str) Name of the device for which the executor will run. Example device name:

    dev_name_0 = ‘cpu:0’ dev_name_1 = ‘gpu:0’

  • cache_path – (str) Local path for which operators are stored. Defaults to $HOME/.towhee/operators.

Methods

execute

getName

isDaemon

is_alive

Return whether the thread is alive.

join

Wait until the thread terminates.

push_task

Push a task to the end of the task queue.

run

Runs the execution loop.

setDaemon

setName

start

Start the thread's activity.

stop

Sets a flag, which stops the execution loop after a period of time.

Attributes

daemon

A boolean value indicating whether this thread is a daemon thread.

ident

Thread identifier of this thread or None if it has not been started.

name

A string used for identification purposes only.

native_id

Native integral thread ID of this thread, or None if it has not been started.

num_tasks

__init__(name: str, cache_path: Optional[str] = None)[source]

This constructor should always be called with keyword arguments. Arguments are:

group should be None; reserved for future extension when a ThreadGroup class is implemented.

target is the callable object to be invoked by the run() method. Defaults to None, meaning nothing is called.

name is the thread name. By default, a unique name is constructed of the form “Thread-N” where N is a small decimal number.

args is the argument tuple for the target invocation. Defaults to ().

kwargs is a dictionary of keyword arguments for the target invocation. Defaults to {}.

If a subclass overrides the constructor, it must make sure to invoke the base class constructor (Thread.__init__()) before doing anything else to the thread.

__repr__()

Return repr(self).

property daemon

A boolean value indicating whether this thread is a daemon thread.

This must be set before start() is called, otherwise RuntimeError is raised. Its initial value is inherited from the creating thread; the main thread is not a daemon thread and therefore all threads created in the main thread default to daemon = False.

The entire Python program exits when only daemon threads are left.

property ident

Thread identifier of this thread or None if it has not been started.

This is a nonzero integer. See the get_ident() function. Thread identifiers may be recycled when a thread exits and another thread is created. The identifier is available even after the thread has exited.

is_alive()

Return whether the thread is alive.

This method returns True just before the run() method starts until just after the run() method terminates. See also the module function enumerate().

join(timeout=None)

Wait until the thread terminates.

This blocks the calling thread until the thread whose join() method is called terminates – either normally or through an unhandled exception or until the optional timeout occurs.

When the timeout argument is present and not None, it should be a floating point number specifying a timeout for the operation in seconds (or fractions thereof). As join() always returns None, you must call is_alive() after join() to decide whether a timeout happened – if the thread is still alive, the join() call timed out.

When the timeout argument is not present or None, the operation will block until the thread terminates.

A thread can be join()ed many times.

join() raises a RuntimeError if an attempt is made to join the current thread as that would cause a deadlock. It is also an error to join() a thread before it has been started and attempts to do so raises the same exception.

property name

A string used for identification purposes only.

It has no semantics. Multiple threads may be given the same name. The initial name is set by the constructor.

property native_id

Native integral thread ID of this thread, or None if it has not been started.

This is a non-negative integer. See the get_native_id() function. This represents the Thread ID as reported by the kernel.

push_task(task: RunnerBase) bool[source]

Push a task to the end of the task queue.

Parameters:

task – Pre-initialized Task object to push onto the queue.

run()[source]

Runs the execution loop.

start()

Start the thread’s activity.

It must be called at most once per thread object. It arranges for the object’s run() method to be invoked in a separate thread of control.

This method will raise a RuntimeError if called more than once on the same thread object.

stop()[source]

Sets a flag, which stops the execution loop after a period of time.