Java线程池原理

Executor框架 

灵活强大的异步框架,支持多种不同类型的任务执行策略,将任务提交过程与执行过程分离开来,解耦开发


Executor 接口 提供了提交任务的方法executor  

ExecutorService 子接口 提供了生命周期管理方法,submit(Runnable),shutdown() ,shutdownNow()

 AbstractExecutorService  ThreadPoolExecutor  线程池利用工厂类创建各种线程池

ScheduledThreadPoolExecutor 可定时调度任务的线程池


ThreadPoolExecutor 主要参数

corePoolSize  核心线程数

maximumPoolSize 最大线程数

long keepAliveTime  非核心空闲线程存活时间

BlockingQueue<Runnable>   workQueue  保存任务的阻塞队列

handle   拒绝策略

(1)ThreadPoolExecutor

newFixedThreadPool(n,n,0L,new linkedBlockingQueue<Runnable>);可重用的固定线程数线程池

newSingleThreadPoolExecutor(1,1,0L,linkedBlockingQueue<Runnable>);单线程的线程池适用于保证顺序的执行各个任务

newCachedThreadPool(0,Integer.Max_value,60L,synchronousQueue<Runnable>);

大小无界的线程池,适用于执行很多短期异步任务的小程序

(2)ScheduledThreadPoolExecutor

newSingleThreadPoolExecutor(1,1,0L,DelayedWorkQueue);可调度单线程线程池

newScheduledThreadPoolExecutor();可调度的多线程池

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容