线程池的种类
ThreadExecutor实现:
newCacheThreadPool
核心线程数:0
最大线程数:Integer.MAX_VALUE
线程生存时间:60s
工作队列:SynchronousQueue 同步队列
使用场景:短生命周期的异步任务
缺点:无限的线程池大小可能会造成堆外内存溢出(OutOfMemoryException)不适合大工作量的的使用
newFixedThreadPool
核心线程数:参数
最大线程数:参数同上
线程生存周期:0L 无限制
工作队列:LinkedBlockingQueue 无界阻塞队列
使用场景:长生命周期的任务,性能好
newSingleThreadPoolExecutor
核心线程数:1
最大线程数:1
线程生存周期:0L 无限制
工作队列:LinkedBlockingQueue 无界阻塞队列
使用场景:串行执行任务
newScheduledThreadPool
核心线程数:参数
最大线程数:Integer.MAX_VALUE
生存周期:0L 无限制
工作队列:newDelayedWorkQueue 超时时间排序的队列
使用场景:周期性