org.elasticsearch.threadpool.support
Class AbstractThreadPool

java.lang.Object
  extended by org.elasticsearch.util.component.AbstractComponent
      extended by org.elasticsearch.threadpool.support.AbstractThreadPool
All Implemented Interfaces:
java.util.concurrent.Executor, java.util.concurrent.ExecutorService, java.util.concurrent.ScheduledExecutorService, ThreadPool
Direct Known Subclasses:
BlockingThreadPool, CachedThreadPool, ScalingThreadPool

public abstract class AbstractThreadPool
extends AbstractComponent
implements ThreadPool


Nested Class Summary
protected static class AbstractThreadPool.FutureCallable<T>
           
protected static class AbstractThreadPool.FutureRunnable<T>
           
 
Field Summary
protected  java.util.concurrent.ExecutorService executorService
           
protected  java.util.concurrent.ScheduledExecutorService scheduledExecutorService
           
protected  boolean started
           
 
Fields inherited from class org.elasticsearch.util.component.AbstractComponent
componentSettings, logger, settings
 
Constructor Summary
protected AbstractThreadPool(Settings settings)
           
 
Method Summary
 boolean awaitTermination(long timeout, java.util.concurrent.TimeUnit unit)
           
 void execute(java.lang.Runnable command)
           
abstract  java.lang.String getType()
           
<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 isStarted()
           
 boolean isTerminated()
           
<V> java.util.concurrent.ScheduledFuture<V>
schedule(java.util.concurrent.Callable<V> callable, long delay, java.util.concurrent.TimeUnit unit)
           
 java.util.concurrent.ScheduledFuture<?> schedule(java.lang.Runnable command, long delay, java.util.concurrent.TimeUnit unit)
           
 java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable command, long initialDelay, long period, java.util.concurrent.TimeUnit unit)
           
 java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable command, long initialDelay, long delay, java.util.concurrent.TimeUnit unit)
           
 java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable command, TimeValue interval)
           
 void shutdown()
           
 java.util.List<java.lang.Runnable> shutdownNow()
           
<T> java.util.concurrent.Future<T>
submit(java.util.concurrent.Callable<T> task)
           
<T> java.util.concurrent.Future<T>
submit(java.util.concurrent.Callable<T> task, FutureListener<T> listener)
           
 java.util.concurrent.Future<?> submit(java.lang.Runnable task)
           
 java.util.concurrent.Future<?> submit(java.lang.Runnable task, FutureListener<?> listener)
           
<T> java.util.concurrent.Future<T>
submit(java.lang.Runnable task, T result)
           
<T> java.util.concurrent.Future<T>
submit(java.lang.Runnable task, T result, FutureListener<T> listener)
           
 
Methods inherited from class org.elasticsearch.util.component.AbstractComponent
nodeName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

started

protected volatile boolean started

executorService

protected java.util.concurrent.ExecutorService executorService

scheduledExecutorService

protected java.util.concurrent.ScheduledExecutorService scheduledExecutorService
Constructor Detail

AbstractThreadPool

protected AbstractThreadPool(Settings settings)
Method Detail

getType

public abstract java.lang.String getType()

isStarted

public boolean isStarted()
Specified by:
isStarted in interface ThreadPool

schedule

public java.util.concurrent.ScheduledFuture<?> schedule(java.lang.Runnable command,
                                                        long delay,
                                                        java.util.concurrent.TimeUnit unit)
Specified by:
schedule in interface java.util.concurrent.ScheduledExecutorService

schedule

public <V> java.util.concurrent.ScheduledFuture<V> schedule(java.util.concurrent.Callable<V> callable,
                                                            long delay,
                                                            java.util.concurrent.TimeUnit unit)
Specified by:
schedule in interface java.util.concurrent.ScheduledExecutorService

scheduleAtFixedRate

public java.util.concurrent.ScheduledFuture<?> scheduleAtFixedRate(java.lang.Runnable command,
                                                                   long initialDelay,
                                                                   long period,
                                                                   java.util.concurrent.TimeUnit unit)
Specified by:
scheduleAtFixedRate in interface java.util.concurrent.ScheduledExecutorService

scheduleWithFixedDelay

public java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable command,
                                                                      long initialDelay,
                                                                      long delay,
                                                                      java.util.concurrent.TimeUnit unit)
Specified by:
scheduleWithFixedDelay in interface java.util.concurrent.ScheduledExecutorService

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

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.util.concurrent.Callable<T> task,
                                                 FutureListener<T> listener)
Specified by:
submit in interface ThreadPool

submit

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

submit

public <T> java.util.concurrent.Future<T> submit(java.lang.Runnable task,
                                                 T result,
                                                 FutureListener<T> listener)
Specified by:
submit in interface ThreadPool

submit

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

submit

public java.util.concurrent.Future<?> submit(java.lang.Runnable task,
                                             FutureListener<?> listener)
Specified by:
submit in interface ThreadPool

scheduleWithFixedDelay

public java.util.concurrent.ScheduledFuture<?> scheduleWithFixedDelay(java.lang.Runnable command,
                                                                      TimeValue interval)
Specified by:
scheduleWithFixedDelay in interface ThreadPool

invokeAll

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

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)
                                                         throws java.lang.InterruptedException
Specified by:
invokeAll in interface java.util.concurrent.ExecutorService
Throws:
java.lang.InterruptedException

invokeAny

public <T> T invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks)
            throws java.lang.InterruptedException,
                   java.util.concurrent.ExecutionException
Specified by:
invokeAny in interface java.util.concurrent.ExecutorService
Throws:
java.lang.InterruptedException
java.util.concurrent.ExecutionException

invokeAny

public <T> T invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks,
                       long timeout,
                       java.util.concurrent.TimeUnit unit)
            throws java.lang.InterruptedException,
                   java.util.concurrent.ExecutionException,
                   java.util.concurrent.TimeoutException
Specified by:
invokeAny in interface java.util.concurrent.ExecutorService
Throws:
java.lang.InterruptedException
java.util.concurrent.ExecutionException
java.util.concurrent.TimeoutException

execute

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