Java并发——Executor框架详解(Executor框架结构与框架成员)

Java并发——Executor框架详解(Executor框架结构与框架成员)一 什么是 Executor 框架 我们知道线程池就是线程的集合 线程池集中管理线程 以实现线程的重用 降低资源消耗 提高响应速度等 线程用于执行异步任务 单个的线程既是工作单元也是执行机制 从 JDK1 5 开始 为了把工作单元与执行机制分离开 Executor 框架诞生了 他是一个用于统一创建与运行的接口 Executor 框架实现的就是线程池的功能 二 Executor 框架结构图解 1 Executor 框

一、什么是Executor框架?

我们知道线程池就是线程的集合,线程池集中管理线程,以实现线程的重用,降低资源消耗,提高响应速度等。线程用于执行异步任务,单个的线程既是工作单元也是执行机制,从JDK1.5开始,为了把工作单元与执行机制分离开,Executor框架诞生了,他是一个用于统一创建与运行的接口。Executor框架实现的就是线程池的功能。

二、Executor框架结构图解

1、Executor框架包括3大部分:

(1)任务。也就是工作单元,包括被执行任务需要实现的接口:Runnable接口或者Callable接口

(2)任务的执行。也就是把任务分派给多个线程的执行机制,包括Executor接口及继承自Executor接口的ExecutorService接口

(3)异步计算的结果。包括Future接口及实现了Future接口的FutureTask类

Executor框架的成员及其关系可以用一下的关系图表示:

Java并发——Executor框架详解(Executor框架结构与框架成员)

2、Executor框架的使用示意图:

Java并发——Executor框架详解(Executor框架结构与框架成员)

使用步骤:

(1)创建Runnable并重写run()方法或者Callable对象并重写call()方法:

class callableTest implements Callable 
  
    { @Override public String call() { try{ String a = "return String"; return a; } catch(Exception e){ e.printStackTrace(); return "exception"; } } } 
  

(2)创建Executor接口的实现类ThreadPoolExecutor类或者ScheduledThreadPoolExecutor类的对象,然后调用其execute()方法或者submit()方法把工作任务添加到线程中,如果有返回值则返回Future对象。其中Callable对象有返回值,因此使用submit()方法;而Runnable可以使用execute()方法,此外还可以使用submit()方法,只要使用callable(Runnable task)或者callable(Runnable task,  Object result)方法把Runnable对象包装起来就可以,使用callable(Runnable task)方法返回的null,使用callable(Runnable task,  Object result)方法返回result。

ThreadPoolExecutor tpe = new ThreadPoolExecutor(5, 10, 100, MILLISECONDS, new ArrayBlockingQueue 
  
    (5)); Future 
   
     future = tpe.submit(new callableTest()); 
    
  

(3)调用Future对象的get()方法后的返回值,或者调用Future对象的cancel()方法取消当前线程的执行。最后关闭线程池

try{ System.out.println(future.get()); } catch(Exception e){ e.printStackTrace(); } finally{ tpe.shutdown(); }

三、Executor框架成员:ThreadPoolExecutor实现类、ScheduledThreadPoolExecutor实现类、Future接口、Runnable和Callable接口、Executors工厂类

Java并发——Executor框架详解(Executor框架结构与框架成员)

1、ThreadPoolExecutor实现类:点击打开链接

2、ScheduledThreadPoolExecutor实现类:点击打开链接

3、Future接口/FutureTask实现类:点击打开链接

4、Runnable和Callable接口:用于实现线程要执行的工作单元。

5、Executors工厂类:提供了常见配置线程池的方法,因为ThreadPoolExecutor的参数众多且意义重大,为了避免配置出错,才有了Executors工厂类。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/199651.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 下午12:31
下一篇 2026年3月20日 下午12:31


相关推荐

  • css图片居中

    css图片居中css 图片居中 divclass main view imgsrc static images loading gif main view text align center display table cell vertical align middle width imgsrc divclass main view

    2026年3月18日
    2
  • 一些sql三

    1、1=1,1=2的使用,在SQL语句组合时用的较多“where 1=1” 是表示选择全部“where 1=2”全部不选,如:if @strWhere&#1

    2021年12月25日
    47
  • 笔记本计算机的连接无线网络连接,笔记本电脑连接wifi的方法步骤

    笔记本计算机的连接无线网络连接,笔记本电脑连接wifi的方法步骤笔记本电脑怎么连接 wifi Wi Fi 是一种可以将个人电脑 手持设备 如 pad 手机 等终端以无线方式互相连接的技术 事实上它是一个高频无线电信号 下面就由学习啦小编来给大家说说笔记本电脑怎么连接 wifi 的吧 欢迎大家前来阅读 笔记本电脑怎么连接 wifi 首先需要创建无线网络链接 进入桌面左下角处的 Win7 开始菜单 点击 控制面板 笔记本电脑连接 wifi 的步骤图 1 然后点击 网络和 Internet

    2026年3月17日
    2
  • Python代码库_Python编程

    Python代码库_Python编程实例:绘制蟒蛇#PythonDraw.pyimportturtleturtle.setup(650,350,200,200)turtle.penup()turtle.fd(-25

    2022年8月5日
    3
  • 编程实现strstr函数「建议收藏」

    编程实现strstr函数「建议收藏」函数接口为:char*mystrstr(char*str1,char*str2)要求:在字符串str1中查找第一次出现字符串str2的位置,如果找到匹配的字符串,返回第一次匹配的指针,否则返回NULL。#include<iostream>usingnamespacestd;char*mystrstr(char*str1,char*str2){ char*p,*q;…

    2022年6月25日
    31
  • 线段树从零开始

    线段树从零开始从零开始讲线段树 适合有一定 C C 编程基础 想学习线段树的读者

    2026年3月26日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号