@InterfaceAudience.Private public abstract class AbstractProcedureScheduler extends Object implements ProcedureScheduler
| 构造器和说明 |
|---|
AbstractProcedureScheduler() |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addBack(Procedure procedure)
Inserts the specified element at the end of this queue.
|
void |
addBack(Procedure procedure,
boolean notify)
Inserts the specified element at the end of this queue.
|
void |
addFront(Iterator<Procedure> procedureIterator)
Inserts all elements in the iterator at the front of this queue.
|
void |
addFront(Procedure procedure)
Inserts the specified element at the front of this queue.
|
void |
addFront(Procedure procedure,
boolean notify)
Inserts the specified element at the front of this queue.
|
protected abstract Procedure |
dequeue()
Fetch one Procedure from the queue
NOTE: this method is called with the sched lock held.
|
protected abstract void |
enqueue(Procedure procedure,
boolean addFront)
Add the procedure to the queue.
|
long |
getNullPollCalls() |
long |
getPollCalls() |
boolean |
hasRunnables() |
Procedure |
poll()
Fetch one Procedure from the queue
|
Procedure |
poll(long nanos) |
Procedure |
poll(long timeout,
TimeUnit unit)
Fetch one Procedure from the queue
|
protected void |
push(Procedure procedure,
boolean addFront,
boolean notify) |
protected abstract boolean |
queueHasRunnables()
Returns true if there are procedures available to process.
|
protected abstract int |
queueSize()
Returns the number of elements in this queue.
|
protected void |
schedLock() |
protected void |
schedUnlock() |
void |
signalAll()
In case the class is blocking on poll() waiting for items to be added,
this method should awake poll() and poll() should return.
|
int |
size()
Returns the number of elements in this queue.
|
void |
start()
Start the scheduler
|
void |
stop()
Stop the scheduler
|
protected void |
waitProcedure(LockAndQueue lockAndQueue,
Procedure proc) |
protected void |
wakePollIfNeeded(int waitingCount) |
protected void |
wakeProcedure(Procedure procedure) |
protected int |
wakeWaitingProcedures(LockAndQueue lockAndQueue)
Wakes up given waiting procedures by pushing them back into scheduler queues.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitclear, completionCleanup, getLockResource, getLocks, yieldpublic void start()
ProcedureSchedulerstart 在接口中 ProcedureSchedulerpublic void stop()
ProcedureSchedulerstop 在接口中 ProcedureSchedulerpublic void signalAll()
ProcedureSchedulersignalAll 在接口中 ProcedureSchedulerprotected abstract void enqueue(Procedure procedure, boolean addFront)
procedure - the Procedure to addaddFront - true if the item should be added to the front of the queuepublic void addFront(Procedure procedure)
ProcedureScheduleraddFront 在接口中 ProcedureSchedulerprocedure - the Procedure to addpublic void addFront(Procedure procedure, boolean notify)
ProcedureScheduleraddFront 在接口中 ProcedureSchedulerprocedure - the Procedure to addnotify - whether need to notify workerpublic void addFront(Iterator<Procedure> procedureIterator)
ProcedureScheduleraddFront 在接口中 ProcedureSchedulerpublic void addBack(Procedure procedure)
ProcedureScheduleraddBack 在接口中 ProcedureSchedulerprocedure - the Procedure to addpublic void addBack(Procedure procedure, boolean notify)
ProcedureScheduleraddBack 在接口中 ProcedureSchedulerprocedure - the Procedure to addnotify - whether need to notify workerprotected void push(Procedure procedure, boolean addFront, boolean notify)
protected abstract Procedure dequeue()
public Procedure poll()
ProcedureSchedulerpoll 在接口中 ProcedureSchedulerpublic Procedure poll(long timeout, TimeUnit unit)
ProcedureSchedulerpoll 在接口中 ProcedureSchedulertimeout - how long to wait before giving up, in units of unitunit - a TimeUnit determining how to interpret the timeout parameterpublic Procedure poll(long nanos)
protected abstract int queueSize()
protected abstract boolean queueHasRunnables()
public int size()
ProcedureSchedulersize 在接口中 ProcedureSchedulerpublic boolean hasRunnables()
hasRunnables 在接口中 ProcedureSchedulerpublic long getPollCalls()
public long getNullPollCalls()
protected int wakeWaitingProcedures(LockAndQueue lockAndQueue)
waitQueue.protected void waitProcedure(LockAndQueue lockAndQueue, Procedure proc)
protected void wakeProcedure(Procedure procedure)
protected void schedLock()
protected void schedUnlock()
protected void wakePollIfNeeded(int waitingCount)
Copyright © 2007–2020 The Apache Software Foundation. All rights reserved.