Java线程池原理

2017-09-22  本文已影响0人  聚在散里

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();可调度的多线程池

上一篇 下一篇

猜你喜欢

热点阅读