Class SameThreadExecutorService

java.lang.Object
ch.raffael.meldioc.util.concurrent.SameThreadExecutorService
All Implemented Interfaces:
java.util.concurrent.Executor, java.util.concurrent.ExecutorService

public class SameThreadExecutorService
extends java.lang.Object
implements java.util.concurrent.ExecutorService
Executor that runs all tasks in the submitting thread.

It does, however, honor the contract of executor services. Several tasks can be run concurrently (when submitted from multiple threads), it doesn't accept any new work on shutdown, awaitTermination() waits until all tasks are done.

  • Constructor Summary

    Constructors
    Constructor Description
    SameThreadExecutorService()  
  • Method Summary

    Modifier and Type Method Description
    boolean awaitTermination​(long timeout, java.util.concurrent.TimeUnit unit)  
    void execute​(java.lang.Runnable command)  
    <T> java.util.List<java.util.concurrent.Future<T>> invokeAll​(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks)  
    <T> java.util.List<java.util.concurrent.Future<T>> invokeAll​(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks, long timeout, java.util.concurrent.TimeUnit unit)  
    <T> T invokeAny​(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks)  
    <T> T invokeAny​(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks, long timeout, java.util.concurrent.TimeUnit unit)  
    boolean isShutdown()  
    boolean isTerminated()  
    void shutdown()  
    java.util.List<java.lang.Runnable> shutdownNow()  
    java.util.concurrent.Future<?> submit​(java.lang.Runnable task)  
    <T> java.util.concurrent.Future<T> submit​(java.lang.Runnable task, T result)  
    <T> java.util.concurrent.Future<T> submit​(java.util.concurrent.Callable<T> task)  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • SameThreadExecutorService

      public SameThreadExecutorService()
  • Method Details

    • execute

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

      public <T> java.util.concurrent.Future<T> submit​(java.util.concurrent.Callable<T> task)
      Specified by:
      submit in interface java.util.concurrent.ExecutorService
    • submit

      public <T> java.util.concurrent.Future<T> submit​(java.lang.Runnable task, @Nullable T result)
      Specified by:
      submit in interface java.util.concurrent.ExecutorService
    • submit

      public java.util.concurrent.Future<?> submit​(java.lang.Runnable task)
      Specified by:
      submit in interface java.util.concurrent.ExecutorService
    • invokeAll

      public <T> java.util.List<java.util.concurrent.Future<T>> invokeAll​(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks)
      Specified by:
      invokeAll in interface java.util.concurrent.ExecutorService
    • invokeAll

      public <T> java.util.List<java.util.concurrent.Future<T>> invokeAll​(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks, long timeout, java.util.concurrent.TimeUnit unit)
      Specified by:
      invokeAll in interface java.util.concurrent.ExecutorService
    • invokeAny

      @Nullable public <T> T invokeAny​(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks)
      Specified by:
      invokeAny in interface java.util.concurrent.ExecutorService
    • invokeAny

      @Nullable public <T> T invokeAny​(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks, long timeout, java.util.concurrent.TimeUnit unit)
      Specified by:
      invokeAny in interface java.util.concurrent.ExecutorService
    • shutdown

      public void shutdown()
      Specified by:
      shutdown in interface java.util.concurrent.ExecutorService
    • shutdownNow

      public java.util.List<java.lang.Runnable> shutdownNow()
      Specified by:
      shutdownNow in interface java.util.concurrent.ExecutorService
    • isShutdown

      public boolean isShutdown()
      Specified by:
      isShutdown in interface java.util.concurrent.ExecutorService
    • isTerminated

      public boolean isTerminated()
      Specified by:
      isTerminated in interface java.util.concurrent.ExecutorService
    • awaitTermination

      public boolean awaitTermination​(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
      Specified by:
      awaitTermination in interface java.util.concurrent.ExecutorService
      Throws:
      java.lang.InterruptedException