Class DefaultTaskScheduler
- java.lang.Object
-
- de.dytanic.cloudnet.common.concurrent.DefaultTaskScheduler
-
- All Implemented Interfaces:
IScheduledTaskInvoker,ITaskScheduler,java.util.concurrent.Executor
public class DefaultTaskScheduler extends java.lang.Object implements ITaskScheduler
-
-
Field Summary
Fields Modifier and Type Field Description protected static longDEFAULT_THREAD_LIFE_MILLISprotected static longDEFAULT_THREAD_PAUSE_MILLISprotected static java.util.concurrent.atomic.AtomicIntegerGROUP_COUNTprotected intmaxThreadSizeprotected java.util.Deque<IScheduledTask<?>>taskEntriesprotected java.util.concurrent.atomic.AtomicLongTHREAD_COUNTprotected java.lang.ThreadGroupthreadGroupprotected longthreadLifeMillisprotected longthreadPauseDelayMillisprotected java.util.Queue<IWorkableThread>workers
-
Constructor Summary
Constructors Constructor Description DefaultTaskScheduler()DefaultTaskScheduler(int maxThreadSize)DefaultTaskScheduler(int maxThreadSize, long threadLifeMillis, long threadPauseDelayMillis)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ITaskSchedulercancelAll()IWorkableThreadcreateWorker()voidexecute(@NotNull java.lang.Runnable command)intgetCurrentWorkerCount()static longgetDefaultThreadLifeMillis()static longgetDefaultThreadPauseMillis()static java.util.concurrent.atomic.AtomicIntegergetGroupCount()intgetMaxThreadSize()java.util.Deque<IScheduledTask<?>>getTaskEntries()java.util.concurrent.atomic.AtomicLonggetTHREAD_COUNT()java.lang.ThreadGroupgetThreadGroup()longgetThreadLifeMillis()longgetThreadPauseDelayMillis()java.util.Collection<IWorkableThread>getWorkers()IWorkableThreadhasFreeWorker()<V> IScheduledTask<V>offerTask(IScheduledTask<V> scheduledTask)IScheduledTask<java.lang.Void>schedule(java.lang.Runnable runnable)IScheduledTask<java.lang.Void>schedule(java.lang.Runnable runnable, long delay)IScheduledTask<java.lang.Void>schedule(java.lang.Runnable runnable, long delay, long repeat)IScheduledTask<java.lang.Void>schedule(java.lang.Runnable runnable, long delay, long repeat, long repeats)IScheduledTask<java.lang.Void>schedule(java.lang.Runnable runnable, long delay, long repeat, long repeats, java.util.concurrent.TimeUnit timeUnit)IScheduledTask<java.lang.Void>schedule(java.lang.Runnable runnable, long delay, long repeat, java.util.concurrent.TimeUnit timeUnit)IScheduledTask<java.lang.Void>schedule(java.lang.Runnable runnable, long delay, java.util.concurrent.TimeUnit timeUnit)<V> IScheduledTask<V>schedule(java.util.concurrent.Callable<V> callable)<V> IScheduledTask<V>schedule(java.util.concurrent.Callable<V> callable, long delay)<V> IScheduledTask<V>schedule(java.util.concurrent.Callable<V> callable, long delay, long repeat)<V> IScheduledTask<V>schedule(java.util.concurrent.Callable<V> callable, long delay, long repeat, long repeats)<V> IScheduledTask<V>schedule(java.util.concurrent.Callable<V> callable, long delay, long repeat, long repeats, java.util.concurrent.TimeUnit timeUnit)<V> IScheduledTask<V>schedule(java.util.concurrent.Callable<V> callable, long delay, long repeat, java.util.concurrent.TimeUnit timeUnit)<V> IScheduledTask<V>schedule(java.util.concurrent.Callable<V> callable, long delay, java.util.concurrent.TimeUnit timeUnit)voidsetMaxThreadSize(int maxThreadSize)voidsetThreadLifeMillis(long threadLifeMillis)voidsetThreadPauseDelayMillis(long threadPauseDelayMillis)voidshutdown()
-
-
-
Field Detail
-
DEFAULT_THREAD_LIFE_MILLIS
protected static final long DEFAULT_THREAD_LIFE_MILLIS
- See Also:
- Constant Field Values
-
DEFAULT_THREAD_PAUSE_MILLIS
protected static final long DEFAULT_THREAD_PAUSE_MILLIS
- See Also:
- Constant Field Values
-
GROUP_COUNT
protected static final java.util.concurrent.atomic.AtomicInteger GROUP_COUNT
-
taskEntries
protected final java.util.Deque<IScheduledTask<?>> taskEntries
-
workers
protected final java.util.Queue<IWorkableThread> workers
-
threadGroup
protected final java.lang.ThreadGroup threadGroup
-
THREAD_COUNT
protected final java.util.concurrent.atomic.AtomicLong THREAD_COUNT
-
maxThreadSize
protected volatile int maxThreadSize
-
threadLifeMillis
protected volatile long threadLifeMillis
-
threadPauseDelayMillis
protected volatile long threadPauseDelayMillis
-
-
Method Detail
-
getDefaultThreadLifeMillis
public static long getDefaultThreadLifeMillis()
-
getDefaultThreadPauseMillis
public static long getDefaultThreadPauseMillis()
-
getGroupCount
public static java.util.concurrent.atomic.AtomicInteger getGroupCount()
-
getTaskEntries
public java.util.Deque<IScheduledTask<?>> getTaskEntries()
-
getThreadGroup
public java.lang.ThreadGroup getThreadGroup()
-
getTHREAD_COUNT
public java.util.concurrent.atomic.AtomicLong getTHREAD_COUNT()
-
getMaxThreadSize
public int getMaxThreadSize()
- Specified by:
getMaxThreadSizein interfaceITaskScheduler
-
setMaxThreadSize
public void setMaxThreadSize(int maxThreadSize)
-
getThreadLifeMillis
public long getThreadLifeMillis()
- Specified by:
getThreadLifeMillisin interfaceITaskScheduler
-
setThreadLifeMillis
public void setThreadLifeMillis(long threadLifeMillis)
- Specified by:
setThreadLifeMillisin interfaceITaskScheduler
-
getThreadPauseDelayMillis
public long getThreadPauseDelayMillis()
-
setThreadPauseDelayMillis
public void setThreadPauseDelayMillis(long threadPauseDelayMillis)
-
getCurrentWorkerCount
public int getCurrentWorkerCount()
- Specified by:
getCurrentWorkerCountin interfaceITaskScheduler
-
createWorker
public IWorkableThread createWorker()
- Specified by:
createWorkerin interfaceITaskScheduler
-
hasFreeWorker
public IWorkableThread hasFreeWorker()
- Specified by:
hasFreeWorkerin interfaceITaskScheduler
-
getWorkers
public java.util.Collection<IWorkableThread> getWorkers()
- Specified by:
getWorkersin interfaceITaskScheduler
-
schedule
public <V> IScheduledTask<V> schedule(java.util.concurrent.Callable<V> callable)
- Specified by:
schedulein interfaceITaskScheduler
-
schedule
public <V> IScheduledTask<V> schedule(java.util.concurrent.Callable<V> callable, long delay)
- Specified by:
schedulein interfaceITaskScheduler
-
schedule
public <V> IScheduledTask<V> schedule(java.util.concurrent.Callable<V> callable, long delay, java.util.concurrent.TimeUnit timeUnit)
- Specified by:
schedulein interfaceITaskScheduler
-
schedule
public <V> IScheduledTask<V> schedule(java.util.concurrent.Callable<V> callable, long delay, long repeat)
- Specified by:
schedulein interfaceITaskScheduler
-
schedule
public <V> IScheduledTask<V> schedule(java.util.concurrent.Callable<V> callable, long delay, long repeat, java.util.concurrent.TimeUnit timeUnit)
- Specified by:
schedulein interfaceITaskScheduler
-
schedule
public <V> IScheduledTask<V> schedule(java.util.concurrent.Callable<V> callable, long delay, long repeat, long repeats)
- Specified by:
schedulein interfaceITaskScheduler
-
schedule
public <V> IScheduledTask<V> schedule(java.util.concurrent.Callable<V> callable, long delay, long repeat, long repeats, java.util.concurrent.TimeUnit timeUnit)
- Specified by:
schedulein interfaceITaskScheduler
-
schedule
public IScheduledTask<java.lang.Void> schedule(java.lang.Runnable runnable)
- Specified by:
schedulein interfaceITaskScheduler
-
schedule
public IScheduledTask<java.lang.Void> schedule(java.lang.Runnable runnable, long delay)
- Specified by:
schedulein interfaceITaskScheduler
-
schedule
public IScheduledTask<java.lang.Void> schedule(java.lang.Runnable runnable, long delay, java.util.concurrent.TimeUnit timeUnit)
- Specified by:
schedulein interfaceITaskScheduler
-
schedule
public IScheduledTask<java.lang.Void> schedule(java.lang.Runnable runnable, long delay, long repeat)
- Specified by:
schedulein interfaceITaskScheduler
-
schedule
public IScheduledTask<java.lang.Void> schedule(java.lang.Runnable runnable, long delay, long repeat, java.util.concurrent.TimeUnit timeUnit)
- Specified by:
schedulein interfaceITaskScheduler
-
schedule
public IScheduledTask<java.lang.Void> schedule(java.lang.Runnable runnable, long delay, long repeat, long repeats)
- Specified by:
schedulein interfaceITaskScheduler
-
schedule
public IScheduledTask<java.lang.Void> schedule(java.lang.Runnable runnable, long delay, long repeat, long repeats, java.util.concurrent.TimeUnit timeUnit)
- Specified by:
schedulein interfaceITaskScheduler
-
shutdown
public void shutdown()
- Specified by:
shutdownin interfaceITaskScheduler
-
execute
public void execute(@NotNull @NotNull java.lang.Runnable command)- Specified by:
executein interfacejava.util.concurrent.Executor
-
offerTask
public <V> IScheduledTask<V> offerTask(IScheduledTask<V> scheduledTask)
- Specified by:
offerTaskin interfaceIScheduledTaskInvoker
-
cancelAll
public ITaskScheduler cancelAll()
- Specified by:
cancelAllin interfaceIScheduledTaskInvoker
-
-