Java线程池原理

Executor框架 

Java线程池原理_第1张图片

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


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

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

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

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


ThreadPoolExecutor 主要参数

corePoolSize  核心线程数

maximumPoolSize 最大线程数

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

BlockingQueue   workQueue  保存任务的阻塞队列

handle   拒绝策略

(1)ThreadPoolExecutor

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

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

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

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

(2)ScheduledThreadPoolExecutor

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

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

你可能感兴趣的:(Java线程池原理)