Interface Worker

    • 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's get 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 form result = 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 to Callable 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 execution
        NullPointerException - 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's get method will return the given result upon successful completion.
        Type Parameters:
        T - the type of the result
        Parameters:
        task - the task to submit
        result - the result to return
        Returns:
        a Future representing pending completion of the task
        Throws:
        RejectedExecutionException - if the task cannot be scheduled for execution
        NullPointerException - 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's get method will return null 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 execution
        NullPointerException - if the task is null