提高线程的可管理性:线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。 1. Executor框架 1.1 线程池常用Api 1.2 Executor框架主要分组成 任务(Runnable/Callable):Runnable接口或Callable接口的实现类 任务的执行(Executor):必须使用核心接口Executor,...
1、Executor接口:是Executor框架的顶级接口,定义了一个用于执行任务的方法execute(Runnable command)。2、ExecutorService接口:继承自Executor接口,是线程池的主要接口。它扩展了Executor接口,并添加了一些管理线程池的方法,如提交任务、关闭线程池等。3、ThreadPoolExecutor类:是ExecutorService接口的主要实现类,也是Java...
也就是线程池中的线程,主要是执行分发来的task。 2.管理线程池的监督线程。这个线程的创建独立于线程池的创建,按照既定的管理方法进行管理线程池中的所有线程,主要任务是监听任务的到来,唤醒线程池中的空闲线程,分发任务;如果任务增多,动态的创建一批线程加入原来的线程池中,进行工作;适当的销毁线程,减少系统开销。 ...
Java并发编程(08):Executor线程池框架 一、Executor框架简介 1、基础简介 Executor系统中,将线程任务提交和任务执行进行了解耦的设计,Executor有各种功能强大的实现类,提供便捷方式来提交任务并且获取任务执行结果,封装了任务执行的过程,不再需要Thread().start()方式,显式创建线程并关联执行任务。 2、调度模型 线程被一...
1.线程池 线程池的使⽤ 创建线程池 提交任务 关闭线程池 • 线程池的原理 • 合理配置线程池 • 线程池的监控 2.Executor Executor框架的结构和成员, 以及成员的使⽤和设计思想 。 Executor 框架:why? what? Executor 框架的结构 Executor 框架的成员 Executor接⼜、ThreadPoolExecutor、...
ForkJoinPool:Fork/Join线程池,在JDK1.7时引入,是实现Fork/Join框架的核心类。 2、ThreadPoolExecutor ExecutorService中的submit(),invokeAll(),invokeAny()都是调用的execute方法,所以execute是核心中的核心; 它的重要参数:corePoolSize、maximumPoolSize,拒绝策略,阻塞队列; ...
ThreadPoolExecutor是Executor框架的正真实现者。它实现了execute方法,execute正真的实现,以下三个关键点:HashSet<Worker> workers;//Worker集合,线程池 BlockingQueue<Runnable> workQueue;//阻塞队列,要执行的任务 final void runWorker(Worker w);//Worker调用这个方法,可以从阻塞队列中获取任务来执行。这里有一...
java的Executor线程池框架类图大致如下: Executor:执行者,java线程池框架的最上层父接口,地位类似于spring的BeanFactry、集合框架的Collection接口,在Executor这个接口中只有一个execute方法,该方法的作用是向线程池提交任务并执行。 ExecutorService:该接口继承自Executor接口,添加了shutdown、shutdownAll、submit、invokeAll等一...
ThreadPoolExecutor是Executor框架的正真实现者。它实现了execute方法,execute正真的实现,以下三个关键点: HashSet<Worker> workers;//Worker集合,线程池 BlockingQueue<Runnable> workQueue;//阻塞队列,要执行的任务 final void runWorker(Worker w);//Worker调用这个方法,可以从阻塞队列中获取任务来执行。
Executor是一个任务执行框架(线程池框架),能支持多种类型的任务执行策略(多种类型线程池)。提供了标准的方法将任务的提交过程和执行过程解耦,基于生产者-消费者模式,提交任务的线程相当于生产者,执行任务的线程相当于消费者。Executor框架提供了对任务执行的生命周期管理的支持。 Executor框架的组件构成 任务创建组件: ...