美文网首页
线程池相关

线程池相关

作者: GDHuo | 来源:发表于2018-10-31 09:30 被阅读0次

ThreadPoolExecutor是线程池的基本函数,其中几个参数说明如下:

  1. corePoolSize 线程池的核心线程数,会一直存在。当线程数小于此数值时即使有空闲线程也会新起一个线程去执行。
  2. maximumPoolSize 最大线程数。

当一个任务添加到线程池时:
i.如果此时线程池中的数量小于corePoolSize,即使线程池中的线程都处于空闲状态,也要创建新的线程来处理被添加的任务。
ii.如果此时线程池中的数量等于 corePoolSize,但是缓冲队列 workQueue未满,那么任务被放入缓冲队列。
iii.如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量小于maximumPoolSize,建新的线程来处理被添加的任务。
iv.如果此时线程池中的数量大于corePoolSize,缓冲队列workQueue满,并且线程池中的数量等于maximumPoolSize,那么通过 handler所指定的策略来处理此任务。
v.当线程池中的线程数量大于 corePoolSize时,如果某线程(非核心线程)空闲时间超过keepAliveTime,线程将被终止。这样,线程池可以动态的调整池中的线程数。

也就是:处理任务的优先级为:
核心线程corePoolSize、任务队列workQueue、最大线程maximumPoolSize,如果三者都满了,使用handler处理被拒绝的任务(一般为抛出java.util.concurrent.RejectedExecutionException异常)。

相关文章

  • 2020-07-28JDK5.0之后新增的创建多线程的方式2

    新增方式二:使用线程池 线程池相关API JDK 5.0起提供了线程池相关API:ExecutorService ...

  • 线程池创建和相关知识

    线程池创建(单例):Android线程池得要这么用 - 简书 线程池相关知识:Android开发之线程池使用总结 ...

  • ExecutorService线程池

    声明: 一、ExecutorService线程池相关介绍 线程池的介绍略 ExecutorServiceExecu...

  • 线程池相关

    ThreadPoolExecutor代码中的注释 ExcutorService 尽可能使用线程池里的Thread来...

  • 线程池相关

    ThreadPoolExecutor是线程池的基本函数,其中几个参数说明如下: corePoolSize 线程池的...

  • 线程池相关

    声明 本文是从前同事Blankj的开源项目安卓 offer 收割基拷贝过来仅作为自己的知识点的收集。 线程池 优点...

  • 线程池相关

    线程池 1.几种常用的线程池 包括:newSingleThreadExecutor、newFixedThreadP...

  • 线程池相关

    1. 线程池的好处 线程资源复用,通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度,任务到达时...

  • 线程池相关

    1.线程池参数设计 1.1意义 线程池的线程数量设置过多会导致线程竞争激烈; 如果线程数量设置过少的话,还会导致系...

  • java线程池源码解析

    主要介绍线程池相关知识,关于线程池,首先我们思考下为什么要用线程池。如果单纯的使用线程,线程的创建和销毁都是自己来...

网友评论

      本文标题:线程池相关

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