ThreadPoolExecutor 自定义线程池

int corePoolSize:核心线程数 线程空闲时也不会被回收

int maximumPoolSize, 最大线程数

long keepAliveTime, 存活时间

TimeUnit unit, 活跃时间单位

BlockingQueue workQueue, 阻塞队列

ThreadFactory threadFactory, RejectedExecutionHandler handler: 拒绝策略 可以通过实现 RejectedExecutionHandler 来自定义拒绝策略

当线程数小于 corePoolSize时即使有空闲线程也会创建新线程;

当活跃线程数大于等于corePoolSize 等待队列没满时,则后记任务就直接放入等待队列;

当等待队列满了,小于maximumPoolSize时新建线程处理;

当大于maximumPoolSize则采用决绝策略拒绝,

     JDK自带的拒绝策略:

(1)  AbortPolicy  直接抛出RejectedExecutionException异常

(2) CallerRunsPolicy 由调用当前方法的线程执行,除非线程池关闭则丢弃任务

(3) DiscardPolicy  直接丢弃任务

(4) DisCardOldestPolicy  丢弃(discard)最前面的未处理的任务,尝试执行当前的任务直到线程池关闭

 

你可能感兴趣的:(java,thread,Executor)