org.amino.scheduler.internal
Class WorkStealingScheduler

java.lang.Object
  extended by java.util.concurrent.AbstractExecutorService
      extended by org.amino.scheduler.internal.AbstractScheduler
          extended by org.amino.scheduler.internal.WorkStealingScheduler
All Implemented Interfaces:
java.util.concurrent.Executor, java.util.concurrent.ExecutorService, Scheduler

public class WorkStealingScheduler
extends AbstractScheduler

Classes for a work stealing scheduler.

Author:
blainey

Nested Class Summary
 
Nested classes/interfaces inherited from class org.amino.scheduler.internal.AbstractScheduler
AbstractScheduler.WorkThread
 
Constructor Summary
WorkStealingScheduler()
           
WorkStealingScheduler(int numWorkers)
           
WorkStealingScheduler(int numWorkers, boolean doRandom)
           
 
Method Summary
protected  void addWork(java.lang.Runnable command)
          Submit a new work item.
protected  java.util.List<java.lang.Runnable> getOutstandingWork()
          
protected  java.lang.Runnable getWork(int id)
          Get work item identified by id.
 
Methods inherited from class org.amino.scheduler.internal.AbstractScheduler
awaitTermination, defaultNumberOfWorkers, execute, getRejectedExecutionHandler, isShutdown, isTerminated, numWorkers, setNumberOfWorkers, setRejectedExecutionHandler, shutdown, shutdownNow, signalNewWork, startWorkers, waitNewWork
 
Methods inherited from class java.util.concurrent.AbstractExecutorService
invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor, submit, submit, submit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.concurrent.ExecutorService
invokeAll, invokeAll, invokeAny, invokeAny, submit, submit, submit
 

Constructor Detail

WorkStealingScheduler

public WorkStealingScheduler()

WorkStealingScheduler

public WorkStealingScheduler(int numWorkers)
Parameters:
numWorkers - number of worker threads to create.

WorkStealingScheduler

public WorkStealingScheduler(int numWorkers,
                             boolean doRandom)
Parameters:
numWorkers - number of worker threads to create.
doRandom - randomly select thread for stealing work.
Method Detail

addWork

protected void addWork(java.lang.Runnable command)
Submit a new work item.

Specified by:
addWork in class AbstractScheduler
Parameters:
command - work item to run

getOutstandingWork

protected java.util.List<java.lang.Runnable> getOutstandingWork()

Specified by:
getOutstandingWork in class AbstractScheduler
Returns:
List of remaining work items that have not yet finished running.

getWork

protected java.lang.Runnable getWork(int id)
Get work item identified by id.

Specified by:
getWork in class AbstractScheduler
Parameters:
id - id for work item
Returns:
Runnable method


Copyright © 2008. All Rights Reserved.