org.amino.scheduler.internal
Class WorkStealingScheduler
java.lang.Object
java.util.concurrent.AbstractExecutorService
org.amino.scheduler.internal.AbstractScheduler
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
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 |
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.
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.