美文网首页
学习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