1、并发编程的一种编程方式是把任务拆分为一些列的小任务,即Runnable,然后将这些任务提交给一个Executor执行, Executor.execute(Runnalbe) 。Executor在执行时使用其内部的线程池来完成操作。

Executor的子接口有:ExecutorService,ScheduledExecutorService,已知实现类:AbstractExecutorService,ScheduledThreadPoolExecutor,ThreadPoolExecutor。

2、Executor属于public类型的接口。可以用于提交,管理或者执行Runnable任务。实现Executor接口的class还可以控制Runnable任务执行线程的具体细节。包括线程使用的细节、调度等。一般来说,Runnable任务开辟在新线程中的使用方法为:new Thread(new (RunnableTask())).start()

3、但在Executor中,可以使用Executor而不用显示地创建线程。例如,可以使用以下方法创建线程,而不是像第2点中为一种任务中的每个任务都调用new Thread(...)的方法。

Exectuor executor = anExecutor();executor.execute(new RunnableTask()); // 异步执行executor.execute(new RunnableTask());

4、但是,Executor接口并没有严格地要求执行必须是异步/同步的,一切都相当自由。在最简单的情况下,执行程序可以在调用者的线程中立即运行已提交的任务,

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

更常见的是,任务在某个不是调用者线程的线程中执行的。如在另一个线程中启动:

class ThreadPerTaskExecutor implements Executor { public void execute(Runnable r) {new Thread(r).start();}}

也可以在实现中用另一个Executor来序列化执行过程:

class SerialExecutor implements Executor {final Queue tasks = new ArrayDeque();final Executor executor;Runnable active;SerialExecutor(Executor executor) {this.executor = executor;}public synchronized void execute(final Runnable r) {tasks.offer(new Runnable() {public void run() {try {r.run();} finally {scheduleNext();}}});if (active == null) {scheduleNext();}}protected synchronized void scheduleNext() {if ((active = tasks.poll()) != null) {executor.execute(active);}}}

5、ThreadPoolExecutor类提供了一个可供可扩展的线程池实现。Executors类为Executor接口及其实现提供了便捷的工厂方法。

6、 Executor中的方法execute。void execute(Runnable command)表示在未来的某个时间执行给定的命令。该命令可能在新的线程、已经入池的线程或者正在调用的线程中执行。

java编程executor框架_Java并发编程 - Executor框架(一)Executor,相关推荐

  1. java executor 异步_Java并发编程11-异步执行框架Executor

    1 Executor框架的简介 1.5后引入的Executor框架的最大优点是把任务的提交和执行解耦.要执行任务的人只需把Task描述清楚,然后提交即可.这个Task是怎么被执行的,被谁执行的,什么时 ...

  2. java中解决脏读_java并发编程学习之脏读代码示例及处理

    使用interrupt()中断线程     当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即 ...

  3. java并发编程代码示例_java并发编程之同步器代码示例

    java并发编程之同步器代码示例 发布时间:2020-09-08 16:53:41 来源:脚本之家 阅读:58 作者:Blessing_H 同步器是一些使线程能够等待另一个线程的对象,允许它们协调动作 ...

  4. java 共享锁 独占锁_Java并发编程锁之独占公平锁与非公平锁比较

    Java并发编程锁之独占公平锁与非公平锁比较 公平锁和非公平锁理解: 在上一篇文章中,我们知道了非公平锁.其实Java中还存在着公平锁呢.公平二字怎么理解呢?和我们现实理解是一样的.大家取排队本着先来 ...

  5. java等待5秒_Java并发编程-主线程等待子线程解决方案

    主线程等待所有子线程执行完成之后,再继续往下执行的解决方案 public class TestThread extends Thread { public void run() { System.ou ...

  6. java 关闭守护线程_Java并发编程之线程生命周期、守护线程、优先级、关闭和join、sleep、yield、interrupt...

    Java并发编程中,其中一个难点是对线程生命周期的理解,和多种线程控制方法.线程沟通方法的灵活运用.这些方法和概念之间彼此联系紧密,共同构成了Java并发编程基石之一. Java线程的生命周期 Jav ...

  7. java线程本地变量_Java并发编程示例(九):本地线程变量的使用

    这篇文章主要介绍了Java并发编程示例(九):本地线程变量的使用,有时,我们更希望能在线程内单独使用,而不和其他使用同一对象启动的线程共享,Java并发接口提供了一种很清晰的机制来满足此需求,该机制称 ...

  8. java程序使用异步总线_JAVA并发编程基础

    CPU核心 核心(Die)又称为内核,是CPU最重要的组成部分.CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工艺制造出来的,CPU所有的计算.接受/存储命令.处理数据都由核心执行.各种CP ...

  9. java执行器是什么_Java 并发编程:任务执行器 Executor 接口

    任务执行器(Executor)是一个接口,位于java.util.concurrent包下,它的作用主要是为我们提供任务与执行机制(包括线程使用和调度细节)之间的解耦.比如我们定义了一个任务,我们是通 ...

最新文章

  1. 一个mongosee例子
  2. Contact Bubble View
  3. Java B2B2C o2o多用户商城 springcloud架构 (六)分布式配置中心(Spring Cloud Config)
  4. 如何在大学和工作后让自己逐渐变强?
  5. HashSet、TreeSet、TreeMap实现原理
  6. 最小生成树(普里姆算法【Prim】与克鲁斯卡尔算法【Kruskal】)
  7. js构造函数的浅薄理解
  8. 疯狂连连看之加载界面的图片
  9. ubuntu上下左右变成BD
  10. 软文诊断50期: 百度账号有什么推广功能?能编辑软文吗?
  11. 用CSS美化表格【前端知识】
  12. 官宣 .NET RC 2
  13. Python 转义字符(含用法)
  14. SAS用proc means和proc univariate求数据的样本均值、中位数、四分位数、样本方差、极差、变异系数、二阶、三阶和四阶中心矩、偏度、峰度、标准差和对数据进行正态性检验
  15. 网盘有哪些?网盘哪个好用?
  16. wifi文件服务器地址,wifi是服务器地址
  17. 1.4 面向对象编程中级 对象的继承与super关键字-跟着韩老师学JavaSE
  18. Creo 4.0 软件安装教程
  19. Eclipse开发Android的安装配置。
  20. 西方金融交易员揭露行业潜规则

热门文章

  1. 告别传统商务海报版式|绚丽色彩的你,感觉更具现代与活力
  2. websocket python unity_Unity中Websocket的简单使用
  3. RFC 8998: ShangMi (SM) Cipher Suites for TLS 1.3
  4. linux内核imx6,imx6ull之linux内核移植
  5. jquery请求后台数据(get请求)
  6. IDEA搭建一个简单的Javaweb项目(二)
  7. 关闭裁剪功能_SOLIDWORKS 2021 新增功能—3D CAD
  8. android 阻塞式函数,Android之PC浏览器上传表单格式大文件到手机客户端read函数阻塞问题...
  9. linux时间有几个,Linux下与文件相关的几个时间的介绍
  10. 深度限流装置是什么_集团公司首例零损耗深度限流装置顺利投运