ThreadPoolExecutor( int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory, RejectedExecutionHandler handler)
corePoolSize 核心线程池大小
maximumPoolSize 最大线程池大小
keepAliveTime 当线程池大小大于corePoolSize时空闲线程最大的等待时间
workQueue 任务队列,是实现各种特性的线程池的关键
threadFactory 线程工厂类
RejectedExecutionHandler 当任务量超过线程池的处理能力时(任务队列满)的拒绝任务的策略
提交任务
public void execute(Runnable command)
关闭线程池,等待任务队列中所有的任务执行完成,不能往线程池中添加新的任务,否则执行RejectedExecutionHandler
public void shutdown()
尝试停止正在执行的任务(调用interrupt方法,是否停止取决于线程是否响应该方法),并将等待执行的任务装入List返回给调用者
public List<Runnable> shutdownNow()
当前线程阻塞,直到
public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException
从任务队列中移除相应的任务,在该任务没有被执行的情况下
public boolean remove(Runnable task)
以下两个方法需要通过继承ThreadPoolExecutor来实现
protected void beforeExecute(Thread t, Runnable r)
protected void afterExecute(Runnable r, Throwable t)
public interface RejectedExecutionHandler{ void rejectedExecution(Runnable r, ThreadPoolExecutor executor) }
所有已知的实现类