java并发编程-executor框架executor,

     2022-03-14     733

关键词:

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<Runnable> tasks = new ArrayDeque<Runnable>();	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框架Executor框架便是Java5中引入的,其内部使用了线程池机制,在java.util.cocurrent包下,通过该框架来控制线程的启动、执行和关闭,可以简化并发编程的操作。因此,在Java5... 查看详情

java并发编程学习10-任务执行与executor框架(代码片段)

任务执行何为任务?任务通常是一些抽象且离散的工作单元。大多数并发应用程序都是围绕着“任务执行”来构造的。而围绕着“任务执行”来设计应用程序结构时,首先要做的就是要找出清晰的任务边界。大多数服务器应用程... 查看详情

2,executor线程池(代码片段)

一,Executor框架简介在Java5之后,并发编程引入了一堆新的启动、调度和管理线程的API。Executor框架便是Java5中引入的,其内部使用了线程池机制,它在java.util.cocurrent包下,通过该框架来控制线程的启动、执行和关闭,可以简化并... 查看详情

java中的并发编程executor(代码片段)

并发编程中的Executor基本概念ExecutorExecutorServiceExecutorsExecutor和ExecutorService和Executors的比较ExecutorExecutorServiceExecutors自定义线程池基本概念Thread存在的问题:性能很差,每次调用newThread()时都会创建新的对象线程缺乏统一的管理.可能... 查看详情

java并发编程学习10-任务执行与executor框架(代码片段)

任务执行何为任务?任务通常是一些抽象且离散的工作单元。大多数并发应用程序都是围绕着“任务执行”来构造的。而围绕着“任务执行”来设计应用程序结构时,首先要做的就是要找出清晰的任务边界。大多数服务... 查看详情

java并发编程学习10-任务执行与executor框架(代码片段)

任务执行何为任务?任务通常是一些抽象且离散的工作单元。大多数并发应用程序都是围绕着“任务执行”来构造的。而围绕着“任务执行”来设计应用程序结构时,首先要做的就是要找出清晰的任务边界。大多数服务... 查看详情

java并发编程系列之二十八:completionservice

CompletionService简介CompletionService与ExecutorService类似都可以用来执行线程池的任务,ExecutorService继承了Executor接口,而CompletionService则是一个接口,那么为什么CompletionService不直接继承Executor接口呢?主要是Executor的特性决定的,Executo... 查看详情

多线程--executor线程池框架(代码片段)

Executor的介绍在Java5之后,并发编程引入了一堆新的启动、调度和管理线程的API。其内部使用了线程池机制,它在java.util.cocurrent包下,通过该框架来控制线程的启动、执行和关闭,可以简化并发编程的操作。因此,在Java5之后,... 查看详情

java高并发编程线程池

摘自马士兵java并发编程一、认识Executor、ExecutorService、Callable、Executors/***认识Executor*/packageyxxy.c_026;importjava.util.concurrent.Executor;publicclassT01_MyExecutorimplementsExecutor{publicstaticvoidmain(Strin 查看详情

java并发executor框架

  Executor框架简介Java的线程既是工作单元,也是执行机制。从JDK5开始,把工作单元和执行机制分离开来。Executor框架由3大部分组成任务。被执行任务需要实现的接口:Runnable接口或Callable接口异步计算的结果。Future接口和F... 查看详情

java并发之executor框架

前言Executor框架概览ExecutorExecutorServiceScheduledExecutorServiceThreadPoolExecutorScheduledThreadPoolExecutorExecutors结语前言在学习JUC的过程中我发现,JUC这个包下面的文档写的十分的好,清楚又易于理解,这篇博客便是参考JUC中和Executor框架相关... 查看详情

executor框架

...离开来。工作单元包括Runnable和Callable,而执行机制由Executor框架提供。Executor框架两级调度模型HotSpotVM的线程模型中底层,Java线程(jav 查看详情

java并发之executor框架

...分的好,清楚又易于理解,这篇博客便是参考JUC中和 Executor 框架相关的一些类文档汇总出来的。当然了,Executor框架涉及到的类还是不少的,全部汇总的话时间成本太高,有点亏,所以这里主要就集中在了 Executor ... 查看详情

)(代码片段)

文章目录《Java并发编程的艺术》读后笔记-Executor框架简介(第十章)1.Executor框架的两级调度模型2.Executor框架的结构与成员2.1Executor框架的结构2.2Executor框架的成员一、ThreadPoolExecutor二、ScheduledThreadPoolExecutor三、Future接口... 查看详情

executor框架简介

Executor框架是在Java5中引入的,可以通过该框架来控制线程的启动,执行,关闭,简化并发编程。Executor框架把任务提交和执行解耦,要执行任务的人只需要把任务描述清楚提交即可,任务的执行提交人不需要去关心。通过Executor... 查看详情

并发编程

Executor框架在Java中,使用线程来异步执行任务。Java线程的创建与销毁需要一定的开销,如果我们为每一个任务创建一个新线程来执行,这些线程的创建与销毁将消耗大量的计算资源。同时,为每一个任务创建一个新线程来执行... 查看详情

executor线程池框架

一、要引入Executor线程池框架的原因1.newThread()的缺点(1)每次调用newThread()都会耗费性能;(2)通过newThread()创建的线程缺乏管理,被称为野线程,可以无限制创建,之间相互竞争,会导致过多占用系统资源导致系统瘫痪,以及... 查看详情

java并发多线程编程——线程池

...实现三、创建线程池的两种方式四、线程池如何使用2.1、Executors类创建线程池的5种方式2.2、Executors.newFixedThreadPool()底层源码及特点2.3、Executors.newSingleThreadExecutor()底层源码及特点2.4、Executors.newC 查看详情