Executor:只有一个方法execute(Runnable r)
Executor源码ExecutorService:扩展了Executor接口;
public interface ExecutorServiceextends Executor{
}
ExecutorService所有方法包含了处理线程池声明周期的方法。
Executor声明周期及不同的的关闭方法延迟任务与周期任务
Timer:支持延迟任务与周期任务,对应下图的schedule();scheduleAtFixedRate
Timer方法Timer缺陷:
1,只支持基于绝对时间而不是相对时间的调度机制,因此任务的执行依赖系统时钟ScheduledThreadPoolExecutor支持基于相对时间的调度。
2,
3,线程泄露
ScheduledThreadPoolExecutor
ScheduledThreadPoolExecutor定义,继承了核心的ThreadPoolExecutor,并且实现了ScheduledExecutorService接口,
类定义 schedule方法Executors提供的四种线程池:
Executors提供的四种线程池相关解释
四种线程池详细参数如下:
核心的线程池类:
ThreadPoolExecutor:
线程池核心构造方法有关线程池都是调用该方法,只是参数不同而已。
public static ExecutorService newFixedThreadPool(int nThreads) {
return new ThreadPoolExecutor(nThreads, nThreads,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue());
}
四种执行策略Runnable只能执行任务,无法返回执行结果,Future和Callable可以返回执行结果。
Future接口主要方法Callable接口
Callable源码FutureTask:实现了RunnableFuture接口,RunnableFuture继承了Runnable和Future接口,也就相当于FutureTask实现了Runnable接口。这里要注意一些基础知识,类A实现了接口B,接口B继承了接口C,那么A也要实现C里面的方法。
RunnableFuture
网友评论