public abstract class TerminableRunnable
extends java.lang.Object
implements java.lang.Runnable
Modifier and Type | Class and Description |
---|---|
private static class |
TerminableRunnable.State |
Modifier and Type | Field and Description |
---|---|
private java.util.concurrent.atomic.AtomicReference<TerminableRunnable.State> |
runState |
private java.util.concurrent.ScheduledFuture<?> |
scheduledFuture |
private java.util.concurrent.atomic.AtomicBoolean |
unschedule |
Constructor and Description |
---|
TerminableRunnable(java.util.concurrent.ScheduledExecutorService scheduler,
long initialDelay,
long delay,
java.util.concurrent.TimeUnit unit) |
Modifier and Type | Method and Description |
---|---|
void |
blockTillTerminated()
Unschedule next launched, and wait for the current task to complete before closing it.
|
protected abstract void |
doRun() |
boolean |
isUnschedule() |
void |
run() |
void |
unscheduleTask()
Unschedule task if active, and cancel thread to inform it must be interrupted in a proper way.
|
private final java.util.concurrent.atomic.AtomicReference<TerminableRunnable.State> runState
private final java.util.concurrent.atomic.AtomicBoolean unschedule
private volatile java.util.concurrent.ScheduledFuture<?> scheduledFuture
public TerminableRunnable(java.util.concurrent.ScheduledExecutorService scheduler, long initialDelay, long delay, java.util.concurrent.TimeUnit unit)
protected abstract void doRun()
public final void run()
run
in interface java.lang.Runnable
public void blockTillTerminated()
public boolean isUnschedule()
public void unscheduleTask()