Class ConcurrentTaskExecutor

    • Method Detail

      • setTaskDecorator

        public final void setTaskDecorator​(TaskDecorator taskDecorator)
        Specify a custom TaskDecorator to be applied to any Runnable about to be executed.

        Note that such a decorator is not necessarily being applied to the user-supplied Runnable/Callable but rather to the actual execution callback (which may be a wrapper around the user-supplied task).

        The primary use case is to set some execution context around the task's invocation, or to provide some monitoring/statistics for task execution.

        NOTE: Exception handling in TaskDecorator implementations is limited to plain Runnable execution via execute calls. In case of #submit calls, the exposed Runnable will be a FutureTask which does not propagate any exceptions; you might have to cast it and call Future#get to evaluate exceptions.

        Since:
        4.3
      • execute

        public void execute​(Runnable task)
        Description copied from interface: TaskExecutor
        Execute the given task.

        The call might return immediately if the implementation uses an asynchronous execution strategy, or might block in the case of synchronous execution.

        Specified by:
        execute in interface Executor
        Specified by:
        execute in interface TaskExecutor
        Parameters:
        task - the Runnable to execute (never null)
      • submit

        public Future<?> submit​(Runnable task)
        Description copied from interface: AsyncTaskExecutor
        Submit a Runnable task for execution, receiving a Future representing that task. The Future will return a null result upon completion.
        Specified by:
        submit in interface AsyncTaskExecutor
        Parameters:
        task - the Runnable to execute (never null)
        Returns:
        a Future representing pending completion of the task
      • submit

        public <T> Future<T> submit​(Callable<T> task)
        Description copied from interface: AsyncTaskExecutor
        Submit a Callable task for execution, receiving a Future representing that task. The Future will return the Callable's result upon completion.
        Specified by:
        submit in interface AsyncTaskExecutor
        Parameters:
        task - the Callable to execute (never null)
        Returns:
        a Future representing pending completion of the task