java8的JDK文档------Tutorial - Concurrency Lesson---Executor Interfaces

简介: java8的JDK文档------Tutorial - Concurrency Lesson---Executor Interfaces,对Executor接口的详细描述

JDK文档------Tutorial - Concurrency Lesson---Executor Interfaces


本文主要介绍Executor的三个接口,其实他们三个是 继承关系的。下面是粗略翻译的文档讲述。


java.util.concurrent包定义了三个执行器接口:

  • Executor,一个支持启动新任务的简单界面。
  • ExecutorService,Executor的一个子接口,它添加了有助于管理生命周期的功能,包括单个任务和执行程序本身。
  • ScheduledExecutorService是ExecutorService的子接口,支持未来和/或定期执行任务。

通常,引用执行器对象的变量声明为这三种接口类型之一,而不是执行程序类类型。


Executor接口

Executor 接口提供单个方法execute旨在直接替代常见的线程创建习惯用法。如果 r 是Runnable对象,而 e 是Executor对象,则可以替换

(new Thread(r)).start();

e.execute(r);

但是,执行的定义不太具体。低级成语创建一个新线程并立即启动它。根据 Executor 实现,execute 可能会执行相同的操作,但更有可能使用现有工作线程来运行 r,或者将 r 放入队列中以等待工作线程可用。(我们将在 Thread Pools部分中介绍工作线程。)

java.util.concurrent 中的执行器实现旨在充分利用更高级的 ExecutorService 和 ScheduledExecutorService 接口,尽管它们也可以与基本的 Executor 接口一起使用。


ExecutorService接口

ExecutorService 接口补充使用类似但更通用的提交方法执行。与 execute 一样,submit 接受可运行的对象,但也接受可调用的对象,这允许任务返回值。submit 方法返回一个 Future 对象,该对象用于检索可调用返回值并管理可调用和可运行任务的状态。

ExecutorService 还提供了提交大型可调用对象集合的方法。最后,ExecutorService 提供了许多方法来管理执行程序的关闭。若要支持立即关闭,任务应正确处理中断。


ScheduledExecutorService 接口

ScheduledExecutorService 接口用 schedule 补充其父 ExecutorService 的方法,该 schedule 在指定的延迟后执行 Runnable 或 Callable 任务。此外,该接口还定义了 scheduleAtFixedRate 和 scheduleWithFixedDelay,它们以定义的时间间隔重复执行指定的任务。


为了大家不被我的翻译误导,下面是官方的文档截图:

image.png

需要具体地址的朋友可以给我发评论

相关文章
|
3月前
|
Java API Apache
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
205 5
|
12天前
|
Java API 数据安全/隐私保护
探索Java动态代理的奥秘:JDK vs CGLIB
动态代理是一种在 运行时动态生成代理类的技术,无需手动编写代理类代码。它通过拦截目标方法的调用,实现对核心逻辑的 无侵入式增强(如日志、事务、权限控制等)。
43 0
探索Java动态代理的奥秘:JDK vs CGLIB
|
25天前
|
JavaScript Java 测试技术
基于Java+SpringBoot+Vue实现的车辆充电桩系统设计与实现(系统源码+文档+部署讲解等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
56 6
|
29天前
|
算法 Java 编译器
深入理解 Java JDK —— 让我们从基础到进阶
JDK(Java Development Kit)是 Java 开发的核心工具包,包含编译、运行和调试 Java 程序所需的所有工具和库。它主要由 JVM(Java 虚拟机)、JRE(Java 运行时环境)和 Java 核心类库组成。JVM 是跨平台运行的基础,负责字节码的加载、执行和内存管理;JRE 提供运行 Java 应用的环境;核心类库则提供了丰富的 API 支持。通过编写、编译和运行一个简单的 Java 程序,可以深入理解 JDK 的工作原理。此外,JDK 还提供了 JIT 编译、垃圾回收优化和并发工具包等高级功能,帮助开发者提高程序性能和稳定性。
105 10
|
2月前
|
容器
jdk8新特性-详情查看文档
jdk8新特性-详情查看文档
65 7
|
3月前
|
Oracle 安全 Java
深入理解Java生态:JDK与JVM的区分与协作
Java作为一种广泛使用的编程语言,其生态中有两个核心组件:JDK(Java Development Kit)和JVM(Java Virtual Machine)。本文将深入探讨这两个组件的区别、联系以及它们在Java开发和运行中的作用。
163 1
|
3月前
|
IDE Java 编译器
开发 Java 程序一定要安装 JDK 吗
开发Java程序通常需要安装JDK(Java Development Kit),因为它包含了编译、运行和调试Java程序所需的各种工具和环境。不过,某些集成开发环境(IDE)可能内置了JDK,或可使用在线Java编辑器,无需单独安装。
138 2
|
4月前
|
缓存 Java Maven
java: 警告: 源发行版 11 需要目标发行版 11 无效的目标发行版: 11 jdk版本不符,项目jdk版本为其他版本
如何解决Java项目中因JDK版本不匹配导致的编译错误,包括修改`pom.xml`文件、调整项目结构、设置Maven和JDK版本,以及清理缓存和重启IDEA。
109 1
java: 警告: 源发行版 11 需要目标发行版 11 无效的目标发行版: 11 jdk版本不符,项目jdk版本为其他版本
|
4月前
|
Java Spring 数据库连接
[Java]代理模式
本文介绍了代理模式及其分类,包括静态代理和动态代理。静态代理分为面向接口和面向继承两种形式,分别通过手动创建代理类实现;动态代理则利用反射技术,在运行时动态创建代理对象,分为JDK动态代理和Cglib动态代理。文中通过具体代码示例详细讲解了各种代理模式的实现方式和应用场景。
78 0
[Java]代理模式
|
4月前
|
Java Linux
java读取linux服务器下某文档的内容
java读取linux服务器下某文档的内容
55 3
java读取linux服务器下某文档的内容