ExecutorService的建立方式

public ThreadPoolExecutor(int corePoolSize,
                              int maximumPoolSize,
                              long keepAliveTime,
                              TimeUnit unit,
                              BlockingQueue<Runnable> workQueue,
                              ThreadFactory threadFactory,

corePoolSize :java

  • 核心线程数,一旦建立将不会再释放
  • 若是建立的线程数尚未达到指定的核心线程数量,将会继续建立新的核心线程,直到达到最大核心线程数后,核心线程数将不在增长;
  • 若是没有空闲的核心线程,同时又未达到最大线程数,则将继续建立非核心线程;
  • 若是核心线程数等于最大线程数,则当核心线程都处于激活状态时,任务将被挂起,等待空闲线程来执行。

maximumPoolSize :线程

  • 最大线程数,容许建立的最大线程数量。
  • 若是最大线程数等于核心线程数,则没法建立非核心线程;
  • 若是非核心线程处于空闲时,超过设置的空闲时间,则将被回收,释放占用的资源。

keepAliveTime :code

  • 也就是当线程空闲时,所容许保存的最大时间,
  • 超过这个时间,线程将被释放销毁,但只针对于非核心线程

unit :队列

  • 时间单位,TimeUnit.SECONDS等。

workQueue :资源

  • 任务队列,存储暂时没法执行的任务,等待空闲线程来执行任务。

threadFactory :  it

  • 线程工程,用于建立线程。

handler :class

  • 当线程边界和队列容量已经达到最大时,用于处理阻塞时的程序  
相关文章
相关标签/搜索