ThreadPoolExecutor
使用
构造函数
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)
ASP站长网关闭线程池,等待任务队列中所有的任务执行完成,不能往线程池中添加新的任务,否则执行RejectedExecutionHandler
 
public void shutdown()
尝试停止正在执行的任务(调用interrupt方法,是否停止取决于线程是否响应该方法),并将等待执行的任务装入List返回给调用者
 
public List<Runnable> shutdownNow()
当前线程阻塞,直到
 
等所有已提交的任务(包括正在跑的和队列中等待的)执行完
或者等超时时间到
或者线程被中断,抛出InterruptedException
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)

dawei

【声明】:九江站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。