Executor框架学习

原创 2018年04月16日 11:13:56
        Executor:接口,只定义了一个接收Runnable对象的方法executor。

void execute(Runnable command);
ExecutorService:是Executor的扩展接口,增加了生命周期管理的方法,一个异步Task执行状况返回Future的方法,以及多个Task集合的方法。
 
void shutdown();
List<Runnable> shutdownNow();
boolean isShutdown();
boolean isTerminated();
boolean awaitTermination(long timeout, TimeUnit unit);
<T> Future<T> submit(Callable<T> task);
<T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks)
ExecutorService有两个实现,一个是接口一个是抽象类
AbstractExecutorService:ExecutorService抽象了一层的抽象类,设置了执行方法的默认的基本实现
ThreadPoolExecutor:线程池,可以通过调用Executors以下静态工厂方法来创建线程池并返回一个ExecutorService对象。
 
public ThreadPoolExecutor(int corePoolSize,// 初始线程数
                              int maximumPoolSize,// 最大线程数
                              long keepAliveTime,// 空闲时间超过keepAliveTime时将被终止
                              TimeUnit unit, // keepAliveTime的时间单位
                              BlockingQueue<Runnable> workQueue,// 超过最大线程数的线程放入阻塞队列
                              ThreadFactory threadFactory,// ThreadFactory创建新线程,默认使用defaultThreadFactory创建线程
                              RejectedExecutionHandler handler) //定义处理被拒绝任务的策略

ScheduledExecutorService:ExecutorService的子接口,主要是实现调度实现方法的定义
public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit);
public <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit);
public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit);
public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit);


ScheduledThreadPoolExecutor:ScheduledExecutorService的实现,一个可定时调度任务的线程池
class ScheduledThreadPoolExecutor extends ThreadPoolExecutor implements ScheduledExecutorService
 public ScheduledThreadPoolExecutor(int corePoolSize, ThreadFactory threadFactory, RejectedExecutionHandler handler) {
        // 此处调用super的 也就是ThreadPoolExecutor的构造方法,即该线程池也是基于ThreadPoolExecutor的实现
        super(corePoolSize, Integer.MAX_VALUE, 0, NANOSECONDS, new DelayedWorkQueue(), threadFactory, handler); 



 

Executor框架的使用简介

类似于我们熟悉的集合框架(由Collection和Map接口衍生出很多其他的接口和类),在JAVA多线程中,也存在一个Executor框架。等以后时间充足了,会对该框架来一波源码剖析。简而言之,Exe...
  • qq_16811963
  • qq_16811963
  • 2016-08-09 15:05:44
  • 2265

并发新特性—Executor框架与线程池(含代码)

http://blog.csdn.net/ns_code/article/details/17465497  Executor框架简介     在Java 5之后,并发编程...
  • czw698
  • czw698
  • 2014-11-25 18:06:17
  • 3044

Java并发编程-Executor框架

我们在并发编程创建线程时,常常是创建一些Runnable对象,然后创建对应的Thread对象执行它们,但是如果程序需要并发执行大量的任务时,需要为每个任务都创建一个Thread,进行管理,这将会影响程...
  • chenchaofuck1
  • chenchaofuck1
  • 2016-06-07 19:56:50
  • 3155

Java中的线程池——Executor框架

1 Executor框架简介 我们通常创建的Java线程它既是工作单元,又是执行机制。每创建一个任务就需要一个新建一个线程来执行,这样会极大的消耗系统资源。从JDK5开始,把工作单元和执行分...
  • u010723709
  • u010723709
  • 2015-12-23 13:28:24
  • 622

Executor框架实例

Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,Completion...
  • vsddvsd
  • vsddvsd
  • 2017-02-22 16:29:06
  • 180

Java并发编程系列之十五:Executor框架

Java使用线程完成异步任务是很普遍的事,而线程的创建与销毁需要一定的开销,如果每个任务都需要创建一个线程将会消耗大量的计算资源,JDK 5之后把工作单元和执行机制区分开了,工作单元包括Runnabl...
  • u011116672
  • u011116672
  • 2016-04-04 17:55:04
  • 5750

《Java并发编程实战》读书笔记三:使用Executor框架

博文目录一、Executor框架 - 1.使用Executor框架 - 2.线程池 - 3.Executor的生命周期:ExecutorService - 4.延迟任务和周期任务 - 5.C...
  • jeffleo
  • jeffleo
  • 2016-12-26 19:39:45
  • 783

关于Executor框架相关接口和类的作用

前言 最近看《JAVA并发编程实战》时,对Executor框架相关类和接口的作用不太明白。看了些资料,总结一下这些类的基本含义和功能。...
  • hotdust
  • hotdust
  • 2017-01-28 21:13:52
  • 654

JDK多任务执行框架--------Executor框架

为了更好的控制多线程,进jdk提供了一套线程框架Executor ,它在Java.util.concurrent包中,是jdk并发报的核心,其中有一个重要的类: Executors,它扮演这个线程工厂...
  • doutao6677
  • doutao6677
  • 2017-08-01 22:45:02
  • 148

多线程执行框架Executor详解

为了能够更好的进行多线程编程,JDK提供了一套Executor执行框架,简化开发人员的对多线程的编程工作。 其框架结构图如下: 框架图比较庞大,但我们只需要关注如下几个实现: Executor...
  • zq602316498
  • zq602316498
  • 2014-12-13 14:49:29
  • 2656
收藏助手
不良信息举报
您举报文章:Executor框架学习
举报原因:
原因补充:

(最多只允许输入30个字)