Class SameThreadSubmitterExecutor

  • All Implemented Interfaces:
    java.util.concurrent.Executor, SubmitterExecutor

    public class SameThreadSubmitterExecutor
    extends java.lang.Object
    implements SubmitterExecutor
    A SubmitterExecutor that will run all provided tasks immediately in the same thread that is invoking into it with the task. This is different from calling the runnable directly only in that no exceptions will propagate out. In the case of just execute(Runnable) thrown exceptions will be provided to ExceptionUtils.handleException(Throwable) to be handled. Otherwise thrown exceptions will be represented within their returned ListenableFuture.
    Since:
    1.2.0
    • Method Detail

      • instance

        public static SameThreadSubmitterExecutor instance()
        Call to get a default instance of the SameThreadSubmitterExecutor. Because there is no saved or shared state, the same instance can be reused as much as desired.
        Returns:
        a static instance of SameThreadSubmitterExecutor
      • execute

        public void execute​(java.lang.Runnable task)
        Specified by:
        execute in interface java.util.concurrent.Executor
      • submit

        public <T> ListenableFuture<T> submit​(java.lang.Runnable task,
                                              T result)
        Description copied from interface: SubmitterExecutor
        Submit a task to run as soon as possible. The Future.get() method will return the provided result once the runnable has completed.
        Specified by:
        submit in interface SubmitterExecutor
        Type Parameters:
        T - type of result for future
        Parameters:
        task - runnable to be executed
        result - result to be returned from resulting future .get() when runnable completes
        Returns:
        a future to know when the task has completed
      • submit

        public <T> ListenableFuture<T> submit​(java.util.concurrent.Callable<T> task)
        Description copied from interface: SubmitterExecutor
        Submit a Callable to run as soon as possible. This is needed when a result needs to be consumed from the callable.
        Specified by:
        submit in interface SubmitterExecutor
        Type Parameters:
        T - type of result returned from the future
        Parameters:
        task - callable to be executed
        Returns:
        a future to know when the task has completed and get the result of the callable