美文网首页
学习JUC,关于线程池

学习JUC,关于线程池

作者: whynotybb | 来源:发表于2019-04-06 17:12 被阅读0次

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

CompletionService:

相关文章

网友评论

      本文标题:学习JUC,关于线程池

      本文链接:https://www.haomeiwen.com/subject/jfbriqtx.html