Java基础之-ExecutorService

翻译javadoc系列文章之:ExecutorService

/**

* An {@link Executor} that provides methods to manage termination and

* methods that can produce a {@link Future} for tracking progress of

* one or more asynchronous tasks.

*

* <p> An <tt>ExecutorService</tt> can be shut down, which will cause

* it to reject new tasks.  Two different methods are provided for

* shutting down an <tt>ExecutorService</tt>. The {@link #shutdown}

* method will allow previously submitted tasks to execute before

* terminating, while the {@link #shutdownNow} method prevents waiting

* tasks from starting and attempts to stop currently executing tasks.

* Upon termination, an executor has no tasks actively executing, no

* tasks awaiting execution, and no new tasks can be submitted.  An

* unused <tt>ExecutorService</tt> should be shut down to allow

* reclamation of its resources.

*

* <p> Method <tt>submit</tt> extends base method {@link

* Executor#execute} by creating and returning a {@link Future} that

* can be used to cancel execution and/or wait for completion.

* Methods <tt>invokeAny</tt> and <tt>invokeAll</tt> perform the most

* commonly useful forms of bulk execution, executing a collection of

* tasks and then waiting for at least one, or all, to

* complete. (Class {@link ExecutorCompletionService} can be used to

* write customized variants of these methods.)

*

* <p>The {@link Executors} class provides factory methods for the

* executor services provided in this package.

ExecutorService 接口是一个提供管理终止(termination)和能够生成跟踪一个或多个异步任务进程结果的方法的接口。

介绍ExecutorService接口的功能:

  1:提供管理终止功能(拒绝新任务进入功能);

  2:提供方法来生成能够追踪一个或多个任务执行结果的Future;

一个ExecutorService可以被关闭,即使其拒绝接受新的任务。

它提供了两种不同的方法来关闭一个ExecutorService。

方法1(shutdown方法):允许之前已经提交的任务继续执行到结束。

方法2(shutdownNow方法):会阻止等待开始的

时间: 2024-10-25 14:33:27

Java基础之-ExecutorService的相关文章

java 基础(二)

java 基础(二)java 基础(二) 2016-2-1 by Damon 61. 编写多线程程序有几种实现方式 Java 5以前实现多线程有两种实现方法:一种是继承Thread类:另一种是实现Runnable接口.两种方式都要通过重写run()方法来定义线程的行为,推荐使用后者,因为Java中的继承是单继承,一个类有一个父类,如果继承了Thread类就无法再继承其他类了,显然使用Runnable接口更为灵活. 补充:Java 5以后创建线程还有第三种方式:实现Callable接口,该接口中的

Java基础】并发 - 多线程

Java基础]并发 - 多线程 分类: Java2014-05-03 23:56 275人阅读 评论(0) 收藏 举报 Java 目录(?)[+] 介绍 Java多线程 多线程任务执行 大多数并发应用程序时围绕执行任务(task)进行管理的:所谓任务就是抽象的,离散的工作单元. 围绕执行任务来管理应用程序时,第一步是要指明一个清晰的任务边界.大多数应用服务器程序都选择了下面这个自然的任务辩解:单独的客户请求: 任务时逻辑上的单元: 任务 Runnable 表示一个任务单元(java.lang)

java基础知识面试题(41-95)

41.日期和时间:- 如何取得年月日.小时分钟秒?- 如何取得从1970年1月1日0时0分0秒到现在的毫秒数?- 如何取得某月的最后一天?- 如何格式化日期?答:问题1:创建java.util.Calendar 实例,调用其get()方法传入不同的参数即可获得参数所对应的值.Java 8中可以使用java.time.LocalDateTimel来获取,代码如下所示. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 public class D

【java基础之jdk源码】Object

最新在整体回归下java基础薄弱环节,以下为自己整理笔记,若有理解错误,请批评指正,谢谢. java.lang.Object为java所有类的基类,所以一般的类都可用重写或直接使用Object下方法,以下为逻辑结构图,没有画类图 (注: 以上绿色方法为 非native方法  粉色方法为 native方法) 那么问题来了 : 1.what is a native object? 本人理解: native关键字标识的java方法为本地方法,底层是有c/c++编写的程序编译后dll文件,java加载d

JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题

JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序员杜鹏程的博客:http://blog.csdn.net/m366917 我们来继续学习多线程 Lock锁的使用 虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁,为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock Lock void lock():获取锁 v

java基础知识积累总结

参考:http://www.importnew.com/22083.html 参考:http://www.importnew.com/22087.html 十分感谢原作者的汇总,我在这个基础上,有所改动,添加自己的备忘,总结 1.面向对象的特性特征: -抽象: 将一类对象的共同特征 总结出来 构造类 的过程,包括 数据抽象 和 行为抽象 两方面.抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么.也就是从实际需求中 设计出类的一个过程,包括类的属性和方法. -封装: 把数据和操作数据的

Java基础-Exchanger的使用

java基础Exchanger的使用 package com.java.thread.test; import java.util.concurrent.Exchanger; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; public class ExchangeerTest {     private 

JAVA基础知识之网络编程——-网络基础(多线程下载,get,post)

本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web资源,URLDecode和URLEncode用来转换字符串. 本文会写两个例子来演示java网络编程的一些基本用法. 第一个例子,写一个程序用来模拟多线程下载. 本例中用到的技术有,多线程--多个线程同时读文件写文件,可以加快下载速度, 线程池--在本例中线程池不是必须,甚至是多余,只不过是为了演示

面试可能遇到java基础知识

1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么. - 继承:继承是从已有类得到继承信息创建新类的过程.提供继承信息的类被称为父类(超类.基类):得到继承信息的类被称为子类(派生类).继承让变化中的软件系统有了一定的延续性,同时继承也是封装程序中可变因素的重要手段(如果不能理解请阅读阎宏博士的<Java与模式>或<设计

Java基础总结(内部版)【转】

一.JVM 1.内存模型 1.1.1 内存分几部分 (1)程序计数器 可看作当前线程所执行的字节码的**行号指示器**.字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支.循环.跳转.异常处理.线程恢复等基础功能都需要依赖这个计数器来完成. 在线程创建时创建.执行本地方法时,PC的值为null.为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,线程私有. (2)Java虚拟机栈 线程私有,生命周期同线程.**每个方法在执行同时,创建栈帧*