Package ai.preferred.venom
Interface Worker
-
- All Known Implementing Classes:
ThreadedWorkerManager.AbstractManagedBlockingWorker
public interface Worker
- Author:
- Maksim Tkachenko, Ween Jiann Lee
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
executeBlockingIO(@NotNull Runnable task)
Performs the given task inline, and increase available threads in the pool by one for the execution of other tasks.@NotNull Future<?>
submit(@NotNull Runnable task)
Submits a Runnable task for execution and returns a Future representing that task.<T> @NotNull Future<T>
submit(@NotNull Runnable task, T result)
Submits a Runnable task for execution and returns a Future representing that task.<T> @NotNull Future<T>
submit(@NotNull Callable<T> task)
Submits a value-returning task for execution and returns a Future representing the pending results of the task.
-
-
-
Method Detail
-
executeBlockingIO
void executeBlockingIO(@NotNull @NotNull Runnable task)
Performs the given task inline, and increase available threads in the pool by one for the execution of other tasks.It is imperative to wrap all I/O tasks in this method to prevent starving other parsing tasks from threads.
- Parameters:
task
- the I/O blocking task to execute- Throws:
NullPointerException
- if the task is null
-
submit
@NotNull <T> @NotNull Future<T> submit(@NotNull @NotNull Callable<T> task)
Submits a value-returning task for execution and returns a Future representing the pending results of the task. The Future'sget
method will return the task's result upon successful completion.
If you would like to immediately block waiting for a task, you can use constructions of the formresult = exec.submit(aCallable).get();
Note: The
Executors
class includes a set of methods that can convert some other common closure-like objects, for example,PrivilegedAction
toCallable
form so they can be submitted.- Type Parameters:
T
- the type of the task's result- Parameters:
task
- the task to submit- Returns:
- a Future representing pending completion of the task
- Throws:
RejectedExecutionException
- if the task cannot be scheduled for executionNullPointerException
- if the task is null
-
submit
@NotNull <T> @NotNull Future<T> submit(@NotNull @NotNull Runnable task, T result)
Submits a Runnable task for execution and returns a Future representing that task. The Future'sget
method will return the given result upon successful completion.- Type Parameters:
T
- the type of the result- Parameters:
task
- the task to submitresult
- the result to return- Returns:
- a Future representing pending completion of the task
- Throws:
RejectedExecutionException
- if the task cannot be scheduled for executionNullPointerException
- if the task is null
-
submit
@NotNull @NotNull Future<?> submit(@NotNull @NotNull Runnable task)
Submits a Runnable task for execution and returns a Future representing that task. The Future'sget
method will returnnull
upon successful completion.- Parameters:
task
- the task to submit- Returns:
- a Future representing pending completion of the task
- Throws:
RejectedExecutionException
- if the task cannot be scheduled for executionNullPointerException
- if the task is null
-
-