`
promzaid
  • 浏览: 3014 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

ExecutorService接口的基本方法

 
阅读更多

先来一段Exector,ExectorService接口的集成体系

public interface Executor{
    void execute(Runnable command);
}

public interface ExectorService implements Executor{
    void shutdown();

    List<Runnable> shutdownNow();

    boolean isShutdown();

    boolean isTerminated();

 

    //
    boolean awaitTermination(long timeout, TimeUnit unit)
        throws InterruptedException;

    <T> Future<T> submit(Callable<T> task);

   
}



 


线程池Executor是异步的执行任务,因此任何时刻不能够直接获取提交的任务的状态。这些任务有可能已经完成,也有可能正在执行或者还在排队等待执行。因此关闭线程池可能出现一下几种情况:

平缓关闭(shutdown):已经启动的任务全部执行完毕,同时不再接受新的任务
立即关闭(shutdownNow):取消所有正在执行和未执行的任务


 

 

进入

 

 

awaitTermination(long timeout, TimeUnit unit) 

 

 

 

  • 大小: 21.6 KB
分享到:
评论

相关推荐

    在spring boot中使用java线程池ExecutorService的讲解

    3. 任务接口(Task):每个任务必须实现的接口,以供工作线程调度任务的执行,它主要规定了任务的入口,任务执行完后的收尾工作,任务的执行状态等。 4. 任务队列(taskQueue):用于存放没有处理的任务。提供一种...

    Executor,Executors,ExecutorService比较.docx

    `ExecutorService`是`Executor`的子接口,它扩展了`Executor`的功能,提供了更丰富的操作线程池的方法,如: - **execute(Runnable)**:从`Executor`继承,用于执行任务。 - **submit(Runnable)**:提交一个`...

    实现Runnable接口的小程序

    本篇文章将深入探讨通过实现Runnable接口来创建线程的方法,以及这种方式相比于直接继承Thread类的优势。 首先,我们来看Runnable接口。在Java的`java.lang`包中,Runnable接口定义了一个方法:`void run()`。任何...

    2011.08.30(2)——— java BlockingQueue ExecutorService

    3. ExecutorService接口及其在多线程编程中的作用。 4. 如何创建和配置ThreadPoolExecutor。 5. 使用BlockingQueue与ExecutorService协同工作的示例代码。 6. 生产者-消费者模型在并发编程中的应用。 这些内容对于...

    线程池核心组件源码剖析.docx

    2. **ExecutorService接口**:继承自Executor接口,增加了管理和控制线程池的功能,如`submit()`用于提交任务,`shutdown()`用于关闭线程池,`shutdownNow()`用于尝试停止所有正在执行的任务等。 3. **...

    21-多线程和线程同步1

    * ExecutorService 接口:提供了 execute() 方法、shutdown() 方法和 submit() 方法,用于执行 Runnable 任务和管理线程池。 * ThreadPoolExecutor 类:是一个线程池执行器,提供了一个固定大小的线程池。 Callable...

    实现Runnable接口创建多线程.docx

    在Java编程语言中,创建线程有两种主要方式:继承`Thread`类和实现`Runnable`接口。由于Java的单继承特性,当一个类需要继承其他类时,就不能再直接...不过,理解基本的`Runnable`接口实现是掌握Java多线程编程的基础。

    java的基本语法和高级使用方法

    - 线程池:ExecutorService接口和ThreadPoolExecutor类用于管理线程池,提高系统效率。 3. **网络文件流**: - 输入/输出流:InputStream和OutputStream处理二进制数据,Reader和Writer处理文本数据。 - 网络...

    理解java多线程中ExecutorService使用

    1. **ExecutorService接口**: `ExecutorService`继承自`Executor`接口,扩展了更多的功能。它的主要方法包括: - `execute(Runnable task)`:用于执行给定的Runnable任务,这是`Executor`接口中唯一的方法,但`...

    java 线程池常用方法

    任务通过`ExecutorService`接口的`execute()`方法执行。`ExecutorService`可以通过`Executors`工具类的静态方法创建,提供了多种类型的线程池: - `newCachedThreadPool()`:创建一个可缓存线程池,如果线程池长度...

    第20章 Part5 并发工具执行器与线程池.pdf

    而ExecutorService接口则扩展了Executor,它提供了更加丰富的方法来管理任务,包括执行程序的生命周期管理,如启动和停止执行器服务。 ExecutorService接口的实现类 ThreadPoolExecutor 是线程池的核心实现,它能够...

    java线程入门教程,涉及线程基本知识,显浅易懂..zip

    而实现`Runnable`接口则需要创建一个实现了`Runnable`接口的类,并在该类中定义`run()`方法,然后将该类的实例传递给`Thread`对象,再通过`Thread`对象的`start()`方法启动线程。这种方式更为灵活,因为Java不支持...

    几种方法编写线程代码

    线程是操作系统调度的基本单位,它允许程序同时执行多个任务,极大地提高了程序的并发性和效率。在编程中,我们有多种方法来创建和管理线程。以下是对这些方法的详细阐述,适合初学者理解。 1. 继承Thread类: 在...

    Java多线程之Executor框架.docx

    `Executor`接口提供了任务执行的基本模型,但并未提供关闭或管理线程池的能力。 为了解决这个问题,`ExecutorService`接口扩展了`Executor`,并提供了更丰富的功能,如任务的提交、跟踪和关闭。`ExecutorService`...

    2015最新Java面试题汇总

    接口和抽象类在实现上有所不同,接口所有方法默认为抽象,而抽象类可包含非抽象方法。Java中的线程创建有多种方式,其中使用ExecutorService是最推荐的,因为它提供了更好的并发控制和资源管理。进程是执行中的应用...

    JAVA 写的SOCKET线程池

    3. **ExecutorService与ThreadPoolExecutor**:理解ExecutorService接口和ThreadPoolExecutor类的使用,如设置核心线程数、最大线程数、线程存活时间、工作队列大小等参数。 4. **Callable与Future**:如果线程池...

    接口课程设计(倒计时钟)的设计与实现

    最后,这样的课程设计不仅有助于巩固接口设计和实现的基本概念,还能提升编程实践中问题解决的能力。通过对倒计时钟的实现,学生可以学习到如何有效地抽象出接口,以及如何在多个类之间协调工作,这对于任何软件开发...

    各种语言短信接口 PHP Java asp.net

    综上所述,无论你是使用PHP、Java还是ASP.NET,实现短信接口都需要理解HTTP请求的基本原理,熟悉所选语言的网络通信库,以及掌握API调用的规范。这个压缩包文件中的“短信接口 v2.1”可能包含了这三种语言的接口实现...

    第六课 线程的概念和例子.rar

    Java的ExecutorService接口和ThreadPoolExecutor类提供了线程池的实现,可以通过Executors类的静态工厂方法创建不同类型的线程池。线程池不仅可以控制并发程度,还能实现任务的排队和拒绝策略,提高系统的稳定性和...

    java中线程的创建常见有如三种基本形式实例

    Java 5引入了`java.util.concurrent`包,提供了`ExecutorService`和`Future`接口,以及`ThreadPoolExecutor`等类,用于更高效地管理和控制线程。`Callable`接口类似于`Runnable`,但其`call()`方法可以返回一个结果...

Global site tag (gtag.js) - Google Analytics