线程池中Executor、ExecuteService、Executors 的区别
来源:互联网 发布:mac air 电池循环次数 编辑:程序博客网 时间:2024/06/05 15:10
Executor、ExecuteService都是接口,ExecuteService继承于Executor,
Executor:接口
接口Executor里面只有一个execute方法:
ExecutorService:接口
接口ExecutorService继承于Executor
Executors :类
直接援引JDK文档的说明来说一下这个类的作用
Factory and utility methods for Executor,ExecutorService, ScheduledExecutorService,ThreadFactory, and Callableclasses defined in this package.
实例:
1、newCachedThreadPool()方法返回类型是ExecutorService;ExecutorService中有一个execute方法,这个方法的参数是Runnable类型。也就是说,将一个实现了Runnable类型的类的实例作为参数传入execute方法并执行,那么线程就相应的执行了。
2、方法newCachedThreadPool()返回值实际是另一个类ThreadPoolExecutor的实例。
引用文档:
http://www.cnblogs.com/yezhenhan/archive/2012/01/07/2315645.html
http://cuisuqiang.iteye.com/blog/2019372
Executor:接口
接口Executor里面只有一个execute方法:
void execute(Runnable command)
ExecutorService:接口
接口ExecutorService继承于Executor
public interface ExecutorService extends Executor { void shutdown(); List<Runnable> shutdownNow(); boolean isShutdown(); boolean isTerminated(); boolean awaitTermination(long timeout, TimeUnit unit) <T> Future<T> submit(Callable<T> task); <T> Future<T> submit(Runnable task, T result); Future<?> submit(Runnable task); <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) <T> T invokeAny(Collection<? extends Callable<T>> tasks) <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) }
Executors :类
直接援引JDK文档的说明来说一下这个类的作用
Factory and utility methods for Executor,ExecutorService, ScheduledExecutorService,ThreadFactory, and Callableclasses defined in this package.
实例:
public class CacheThreadPool { public static void main(String[] args) { ExecutorService exec=Executors.newCachedThreadPool(); for(int i=0;i<5;i++) exec.execute(new LiftOff()); exec.shutdown();//并不是终止线程的运行,而是禁止在这个Executor中添加新的任务 } }上面例子用到了Executors类的newCachedThreadPool()方法。看一下这个方法:
public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue<Runnable>()); }在源码中我们可以知道两点
1、newCachedThreadPool()方法返回类型是ExecutorService;ExecutorService中有一个execute方法,这个方法的参数是Runnable类型。也就是说,将一个实现了Runnable类型的类的实例作为参数传入execute方法并执行,那么线程就相应的执行了。
2、方法newCachedThreadPool()返回值实际是另一个类ThreadPoolExecutor的实例。
引用文档:
http://www.cnblogs.com/yezhenhan/archive/2012/01/07/2315645.html
http://cuisuqiang.iteye.com/blog/2019372
0 0
- 线程池中Executor、ExecuteService、Executors 的区别
- java.util.concurrent 包中Executor与Executors的区别
- java.util.concurrent 包中Executor与Executors的区别
- Executor框架是指java 5中引入的一系列并发库中与executor相关的一些功能类,其中包括线程池,Executor,Executors,ExecutorService,Completion
- 《Java线程池》Executor 以及Executors
- 《Java线程池》Executor 以及Executors
- 多线程-Executors和Executor,线程池
- 0006 Java ExecuteService线程池的原理与实现【原理】
- Executor 的工具类 Executors
- java.util.concurrent包中线程池Executors的使用
- Java Executor并发框架(十二)Executor框架线程池BlockingQueue的三种实现区别
- Executor, ExecutorService 和 Executors 间的不同
- Executor, ExecutorService 和 Executors 间的不同
- Executor, ExecutorService 和 Executors 间的不同
- Executor, ExecutorService 和 Executors 间的不同
- Executor, ExecutorService 和 Executors 间的不同
- Executor框架的线程池
- 线程池中Executors应用(一)
- JS深拷贝与浅拷贝
- 聪明贝塔(Smart Beta)
- c++作业四
- MDX语句
- Hive指定查询输出分隔符
- 线程池中Executor、ExecuteService、Executors 的区别
- 数据库常用SQL语句
- Item CF 和 User CF的适用场景和区别
- rxjava学习博客
- java泛型的理解
- STL函数之lower_bound upper_bound
- seafile 配置文件解析
- c++第四次作业
- Android Action Bar学习(一)--基本介绍及使用