public class StandardThreadExecutor extends ThreadPoolExecutor
代码和思路主要来自于:
tomcat :
org.apache.catalina.core.StandardThreadExecutor
java.util.concurrent
threadPoolExecutor execute执行策略: 优先offer到queue,queue满后再扩充线程到maxThread,如果已经到了maxThread就reject
比较适合于CPU密集型应用(比如runnable内部执行的操作都在JVM内部,memory copy, or compute等等)
StandardThreadExecutor execute执行策略: 优先扩充线程到maxThread,再offer到queue,如果满了就reject
比较适合于业务处理需要远程资源的场景
ThreadPoolExecutor.AbortPolicy, ThreadPoolExecutor.CallerRunsPolicy, ThreadPoolExecutor.DiscardOldestPolicy, ThreadPoolExecutor.DiscardPolicy| 限定符和类型 | 字段和说明 |
|---|---|
static int |
DEFAULT_MAX_IDLE_TIME |
static int |
DEFAULT_MAX_THREADS |
static int |
DEFAULT_MIN_THREADS |
protected AtomicInteger |
submittedTasksCount |
| 构造器和说明 |
|---|
StandardThreadExecutor() |
StandardThreadExecutor(int coreThread,
int maxThreads) |
StandardThreadExecutor(int coreThreads,
int maxThreads,
int queueCapacity) |
StandardThreadExecutor(int coreThreads,
int maxThreads,
int queueCapacity,
ThreadFactory threadFactory) |
StandardThreadExecutor(int coreThread,
int maxThreads,
long keepAliveTime,
TimeUnit unit) |
StandardThreadExecutor(int coreThreads,
int maxThreads,
long keepAliveTime,
TimeUnit unit,
int queueCapacity) |
StandardThreadExecutor(int coreThreads,
int maxThreads,
long keepAliveTime,
TimeUnit unit,
int queueCapacity,
ThreadFactory threadFactory) |
StandardThreadExecutor(int coreThreads,
int maxThreads,
long keepAliveTime,
TimeUnit unit,
int queueCapacity,
ThreadFactory threadFactory,
RejectedExecutionHandler handler) |
| 限定符和类型 | 方法和说明 |
|---|---|
protected void |
afterExecute(Runnable r,
Throwable t) |
void |
execute(Runnable command) |
int |
getMaxSubmittedTaskCount() |
int |
getSubmittedTasksCount() |
allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, beforeExecute, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getQueue, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, shutdown, shutdownNow, terminated, toStringinvokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor, submit, submit, submitpublic static final int DEFAULT_MIN_THREADS
public static final int DEFAULT_MAX_THREADS
public static final int DEFAULT_MAX_IDLE_TIME
protected AtomicInteger submittedTasksCount
public StandardThreadExecutor()
public StandardThreadExecutor(int coreThread,
int maxThreads)
public StandardThreadExecutor(int coreThread,
int maxThreads,
long keepAliveTime,
TimeUnit unit)
public StandardThreadExecutor(int coreThreads,
int maxThreads,
int queueCapacity)
public StandardThreadExecutor(int coreThreads,
int maxThreads,
int queueCapacity,
ThreadFactory threadFactory)
public StandardThreadExecutor(int coreThreads,
int maxThreads,
long keepAliveTime,
TimeUnit unit,
int queueCapacity)
public StandardThreadExecutor(int coreThreads,
int maxThreads,
long keepAliveTime,
TimeUnit unit,
int queueCapacity,
ThreadFactory threadFactory)
public StandardThreadExecutor(int coreThreads,
int maxThreads,
long keepAliveTime,
TimeUnit unit,
int queueCapacity,
ThreadFactory threadFactory,
RejectedExecutionHandler handler)
public void execute(Runnable command)
execute 在接口中 Executorexecute 在类中 ThreadPoolExecutorpublic int getSubmittedTasksCount()
public int getMaxSubmittedTaskCount()
protected void afterExecute(Runnable r, Throwable t)
afterExecute 在类中 ThreadPoolExecutorCopyright © 2021. All rights reserved.