美文网首页
Executors线程池

Executors线程池

作者: MC_Honva | 来源:发表于2020-04-26 20:19 被阅读0次
    • newCacheThreadPool(缓存线程池):阻塞队列为SynchronousQueue,核心线程数0,最大线程数为

      Integer.MAX_VALUE
      

      ,非核心线程存活时间60s

    • newFixedThreadPool(定长线程池):阻塞队列为LinkedBlockingQueue,可能会导致OOM

    • newScheduledThreadPool(定长周期线程):阻塞队列为 DelayedWorkQueue

    • newSingleThreadExecutor(单线程池):阻塞队列为LinkedBlockingQueue,核心线程数和最大线程数为1

    • ThreadPoolExecutor(线程池构造类):

      处理流程:核心线程先接需求,当核心线程数满了,任务进入队列,当队列也满了,判断最大线程数是否已满,没有满就创建新线程执行任务,当最大线程数也满了就采取饱和策略

      • corePoolSize :核心线程数

      • maximumPoolSize:最大线程数

      • keepAliveTime:线程存活时间

      • TimeUnit:存活时间单位

      • BlockQueue:阻塞队列

      • ThreadPoolFactory:线程池工厂

      • handler:饱和策略。

        分别是:AbortPolicy 抛出异常(默认),DiscardPolicy丢弃,DiscardOldestPolicy丢弃队列中最老的任务当前线程交给线程池处理,CallerRunsPolicy交给调用线程池的线程处理

    参考:https://juejin.im/post/5d1882b1f265da1ba84aa676

    相关文章

      网友评论

          本文标题:Executors线程池

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