线程池

作者: link的勇气 | 来源:发表于2018-06-11 14:50 被阅读0次

    ThreadPoolExecutor

    常用构造方法:
    public ThreadPoolExecutor(int corePoolSize, //核心线程数
    int maximumPoolSize,//最大线程数(核心线程+非核心线程)
    long keepAliveTime,//线程生存时间(默认只对非核心线程起作用)
    TimeUnit unit,//时间单位
    BlockingQueue<Runnable> workQueue,//任务队列
    ThreadFactory threadFactory)//线程工厂
    核心线程:当线程池的核心线程数量未达到构造方法指定的的核心线程数时,每有一个任务,都会创建一个核心线程来执行,当核心线程数量达核心线程数上限,开始复用核心线程,当没有空闲的核心线程时,放入任务队列中等待线程。
    非核心线程:当最大核心数大于核心线程数并且核心线程无空闲时,有新的任务会进入任务队列等待,如果队列满了,才会创建非核心线程来执行,直到达到最大线程数上限。非核心线程执行完后,会闲置等待keepAliveTime指定的时长后销毁,除非期间有新的任务使用该线程执行。

    Executors

    Executors是java并发包中提供的一个方便生成线程池的工具类。主要有以下四种:
    newFixedThreadPool:创建固定线程数量的线程池
    newSingleThreadExecutor:创建单一线程的池
    newCachedThreadPool: 创建线程数量自动扩容, 自动销毁的线程池
    newScheduledThreadPool:创建支持计划任务的线程池

    参考:Java高并发之线程池详解

    相关文章

      网友评论

          本文标题:线程池

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