1.世界
1.概述
传入的Runnable对象代表需要执行的命令, 但是注意Executor接口并没有定义这个命令的执行方式, 因此这个命令有可能被多种方式执行:
- 最简单的同步方式, 直接被调用这个execute()方法的线程执行
- 异步方式, 启动一个新的线程来执行这个命令
- 带线程池的异步方式, 从线程池中取出一个空闲线程来执行这个命令,执行完毕之后归还线程到线程池
- 线程池的实现可能有多种, 比如只有单个工作线程和有多个工作线程
- 支持定时任务的实现, 可以在内部保存要求执行的命令, 等到任务执行条件满足后再执行命令
而这些具体执行方式是交给Executor的实现类来实现, 对于调用者只需要选择调用不同的实现类即可轻松实现在多种方式中间选择和切换, 甚至可以不关心具体到底是用什么实现类, 直接针对Executor接口编程.
这样就轻松的将"任务的执行内容"(比如删除一条记录)和"任务的执行方式"(同步/异步/用线程池/5分钟后再执行)在代码上实现隔离和解耦.
2.Executor详解
public interface