美文网首页
Java线程池相关类解释,整理自Java文档

Java线程池相关类解释,整理自Java文档

作者: HWilliamgo | 来源:发表于2018-06-19 15:29 被阅读4次

接口Executor:

一个可以执行被提交的Runnable的对象。该接口提供了一种任务提交的解耦方案,体现在每个task如何运行,使用,调度等。
Executor接口并不严格要求task的执行过程是异步的,在最简单的情况下,一个Executor可以直接将task放在调用者的线程中执行:

class DirectExecutor implements Executor{
  public void execute(Runnable r){
    r.run();
  }
}

但更常见的情况一般是:task会被放置在其他线程而非调用者线程执行。
许多Executor接口的实现会给task如何以及何时被调用加上限制。

void execute(Runnable command);

Runnable可在新线程,线程池,或者调用者线程执行。

接口ExecutorService(Executor的拓展)

是一个提供了termination和返回Future来追踪一个或多个异步tasks的对象。

termination:指executor没有正在执行的task,没有等待执行的task,且没有新的task可以被接收。

shutdown();新的task不再被接收,已提交的task会执行完毕,重复调用该方法没有其他效果。该方法不会阻塞调用者线程来等待task去执行完毕,若要阻塞当前线程,该调用awaitTermination();

shutdownNow();尝试停止所有正在执行的task,停止正在等待的task,返回等待执行的task的List<Runnable>。但并不保证能成功停止正在执行的线程,因为该方法的实现一般就是用Thread#interrupt(),那么就要求线程本身就能正确根据interrupt()方法来停止自身。

isShutdown()返回true如果调用过shutdown()或者shutdownNow()

isTerminated();如果全部task都在调用shutdown()后完成了,将返回true,若调用isTerminated()之前没有调用过shutdown()shutdownNow(),该方法永远返回false。

awaitTermination(long timeout,Timeunit unit) throws InterruptedExeption; 阻塞调用者的线程,直到所有task在shutdown后完成,或者timeout超时,或者当前线程被interrupted。

Future<T> submit(Callable<T>)提交一个有返回值的任务(Callble)并返回一个Future对象。可通过Future#get()来返回任务处理完成的结果。若要为获取一个任务的执行结果而阻塞当前调用者线程,可以

result=exec.submit(aCallable).get();

相关文章

  • Java线程池相关类解释,整理自Java文档

    接口Executor: 一个可以执行被提交的Runnable的对象。该接口提供了一种任务提交的解耦方案,体现在每个...

  • Java 线程池

    Java线程池是java cocurrent包下提供的类,使用非常方便。本文希望整理下Java 线程池相关的知识以...

  • 线程池学习

    Java线程池相关类 Executor定义了最常见的线程池接口,execute(Runnable command)...

  • 线程池状态介绍

    线程池类图 ps:该线程池的类图参考的是《Java 并发编程之美》。 线程池部分源码解释 如下是 ThreadPo...

  • 19. 线程池

    Android 中的线程池就是 java 中的线程池,即 ThreadPoolExecutor 类。 Java 通...

  • Java 线程池详解

    Java 线程池 Java 线程池模型的关键几个类和接口包括:Executor,Executors,Executo...

  • JAVA中的线程池实现

    JAVA中的线程池实现 在JDK1.5之后,JAVA增加了线程池的实现.这里简要描述一下相关的两个类Executo...

  • 线程池笔记

    前言:线程池相关的所有类都在java.util.concurrent包下面 一、线程池的继承关系: 二、重点介绍T...

  • Java线程池

    线程池的作用 暂且不表 线程池 java提供的线程池类是ThreadPoolExecutor。下图是类Thread...

  • Java线程池

    Java线程池 线程池代码Demo 核心类ThreadPoolExecutor 系统自带的线程池,通过Thread...

网友评论

      本文标题:Java线程池相关类解释,整理自Java文档

      本文链接:https://www.haomeiwen.com/subject/qcpaeftx.html