一、ThreadPoolExecutor
public ThreadPoolExecutor ( int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueue< Runnable> workQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler)
corePoolSize
:线程池核心线程数(平时保留的线程数)maximumPoolSize
:线程池最大线程数(当workQueue都放不下时,启动新线程,最大线程数 )keepAliveTime
:超出corePoolSize数量的线程的保留时间。unit
:keepAliveTime的单位workQueue
:阻塞队列,存放来不及执行的线程
ArrayBlockingQueue:构造函数一定要传大小 LinkedBlockingQueue:构造函数不传大小会默认为(Integer.MAX_VALUE ),当大量请求任务时,容易造成内存耗尽。 SynchronousQueue:同步队列,一个没有存储空间的阻塞队列 ,将任务同步交付给工作线程。 PriorityBlockingQueue : 优先队列 threadFactory
:线程工厂handler
:饱和策略
AbortPolicy(默认):直接抛弃 CallerRunsPolicy:用调用者的线程执行任务 DiscardOldestPolicy:抛弃队列中最久的任务 DiscardPolicy:抛弃当前任务