java.util.Concurrent包定义了三类执行器接口:
1 Executor,一个简单的执行器支持启动新的任务
2 ExecutorService,Executor的子接口,增加了管理个体任务和执行器自身的生命周期的特性。
3 ScheduledExecutorService,ExecutorService的子接口,支持将来和/或者周期性任务的执行。
典型地,与Executor对象关联的变量被申明为这三类接口中的一个,而不是用一个执行器类。
The Executor Interface(执行器接口)
Executor接口提供了一个单一方法,execute,被设计成为一个线程-创建形式的可插入式替代。如果r是一个Runnable对象,e是一个Executor对象,你可以用e.execute(r)替代(new Thread(r)).start();
可是,execute的定义是笼统的。低级实行创建一个新的线程并立即启动它。虽然取决于Executor的实现,execute可能做那同样的事情,但是更有可能使用一个已经存在的工作线程来运行r,或者将r放置在一个队列中来等待一个工作线程变得可用。(工作线程将在线程池中讨论)
Executor的实现被设计成充分利用更先进的ExecutorService和ScheduledExecutorService接口,虽然它们也以基本的Executor接口工作。
The ExecutorService Interface
ExecutorService 接口使用一个相似但更全能的submit方法增强execute方法。如同executr,submit接受Runnable对象,但也接受回调对象,允许任务返回一个值。submit方法返回一个future对象,用来取回回调函数的返回值。并管理回调对象和Runnable任务的两者状态。
ExecutorService 也为提交海量回调对象提供了方法。最后,ExecutorService 也提供了大量方法来管理执行器的关闭。为了支持立即关闭,任务应该正确处理中断。
The ScheduledExecutorService Interface
ScheduledExecutorService 接口用schedue方法增强它父类ExecutorService的方法,将在一个指定的延迟后执行一个Runnable或者回调任务。另外,接口定义了scheduleAtFixedRate 和scheduleWithFixedDelay,将在定义的时间间隔多次执行指定的任务。
分享到:
相关推荐
2. 在`handler`目录下编写任务处理逻辑,实现任务的执行接口。 3. 编译并运行Go程序,执行器将自动注册到调度中心并等待任务执行指令。 4. 在调度中心配置任务,指定执行器和任务执行逻辑,设置定时策略或触发条件。...
5. `xxl.job.executor.port`: 执行器的端口号,默认为9999,多实例部署时需要设置不同的端口。 6. `xxl.job.executor.logpath`: 执行器日志文件的存储路径,需要有读写权限。 7. `xxl.job.executor.logretentiondays...
在Java编程语言中,执行器(Executor)是一个关键的概念,它是Java并发编程的重要组成部分,用于管理和控制线程的执行。`Executor`接口位于`java.util.concurrent`包下,它定义了一个执行服务,允许程序员提交任务而...
而`Executor`则是`SqlSession`内部的一个执行器接口,是MyBatis实现数据库操作的核心部分。本文将深入探讨`SqlSession`和`Executor`的实现机制及其在MyBatis中的作用。 `SqlSession`是MyBatis的对外接口,它提供了...
`Executor`接口只有一个方法`execute(Runnable command)`,用于提交一个Runnable任务进行执行。它不保证任务会立即执行,也不保证任务会在线程池中以何种顺序执行。`Executor`接口的简单性使得实现和扩展变得灵活,...
FANUC C Language Executor
异步执行器 异步执行器。 例子 use async_executor :: Executor; use futures_lite :: future; // Create a new executor. let ex = Executor :: new (); // Spawn a task. let task = ex. spawn ( async { ...
XXL-Job 是一款轻量级分布式任务调度平台,由两部分组成:调度中心(xxl-job-admin)和执行器(xxl-job-executor)。在 Spring Boot 应用中集成 XXL-Job 可以方便地实现分布式任务调度,提升系统的可扩展性和容错性...
2. **executor.ip**: 执行器IP,调度中心通过此IP调用执行器的服务接口。如果不配置,则默认取服务器的IP。 3. **executor.port**: 执行器端口,调度中心通过此端口调用执行器的服务接口。默认为9999,可自定义。 4....
通过FANUC宏编译器(Macro Compiler)将程序编译成二进制格式,并通过宏执行器(Macro Executor)在FANUC数控系统中执行这些宏程序。 #### 二、特点 1. **高速执行**: - 通过F-Rom(Flash ROM)存储技术,宏程序...
4. **执行器(Executor)**:执行器负责实际执行任务,当触发器条件满足时,它会启动任务。 在不同的操作系统和开发环境中,有多种定时任务执行器供选择: - **Linux/Unix的Cron**:Cron是最经典的定时任务工具,...
当任务被调度中心触发后,会通过HTTP请求分发到对应的执行器执行。执行器接收到任务后,会通过Spring Job来运行任务逻辑。任务执行的结果会被反馈回调度中心,以便监控任务状态和异常处理。 【任务执行模型】 XXL-...
池执行器 线程池执行器的包装器。 示例初始化代码: IThreadPool executor = new ThreadPool (config . properties); executor . start(); // ... // Execute something. // executor.execute(runnable); // ... ...
- **执行任务**:一旦创建完毕,Executor就会从Driver接收任务并在其线程池中执行这些任务。Executor还可以通过BlockManager缓存中间结果,以提高后续任务的执行效率。 - **回收**:当任务执行完毕或资源不再需要时...
【标题】"go-executor-example-master" 指的可能是一个使用 Go 语言实现的执行器示例项目,其中 "master" 通常表示这是项目的主分支或者最新版本。这个项目可能是为了展示如何在 Go 中编写一个执行器,执行器是一种...
Java中的`Executor`接口是并发编程的核心组件,它位于`java.util.concurrent`包下,主要目的是接收客户端提交的任务(以`Runnable`实例的形式)并负责执行。`Executor`接口简化了多线程编程,使得任务的创建和执行...
xxl-job-executor-sample-springboot-2.2.0.jar 与xxl-job配套的执行器包,用于 Docker-compose搭建xxl-job(并配置Python3环境xxl-job执行器) 中相应的文件
异步执行器版本:0.0.4 状态:开发人员作者:hsz 电子邮件: 描述用于运行协程的Asyncio执行程序。 这段代码来自< > 关键字:asyncio,执行器特征异步运行协程例子通过使用提交运行协程from concurrent . futures...
在Mesos Executor的场景下,Go的这些特性使得开发可扩展、高吞吐的任务执行器变得更为简单。例如,Go的goroutine和channel机制可以轻松实现并行任务处理,而标准库中的网络和I/O功能则便于与Mesos的API进行通信。 ...
这款工具的目的是优化和个性化用户的日常计算体验,使得各种任务执行更为流畅、快捷。Executor的主要功能集中在快速启动、自定义快捷方式以及对系统功能的简便访问上。 Executor的核心特性是它的快速启动功能。不同...