JAVA线程池构造函数的参数有哪些?

在并发编程中,使用线程池的好处是减少在创建和销毁线程上所花费的时间以及系统资源的开销,解决资源不足的问题。如果不使用线程池,有可能造成系统创建大量线程而导致消耗完内存或者“过度切换”的问题。

JAVA线程池有几个核心的参数,这几个参数的作用是:

corePoolSize:核心线程数,当提交一个新的任务到线程池,如果当前线程池运行的线程数(包括闲置的线程)小于核心线程数,则会创建一个新的线程作为核心线程来执行该任务。注意:核心线程是不允许销毁的,除非设置allowCoreThreadTimeOut(true)参数,这是一个非构造函数的参数。

maximumPoolSize:线程池允许最大的线程数,当提交一个新的任务到线程池,如果当前线程池运行的线程数(包括闲置的线程)大于corePoolSize,小于maximumPoolSize,并且等待队列满的时候,会创建一个新的线程来处理该任务。

keepAliveTime:当线程池中线程数量大于corePoolSize时,闲置线程最长可以存活的时间。

unit:时间单位。

workQueue:保存任务的队列,当池中线程数大于corePoolSize时,新来的任务保存到该队列。

threadFactory:线程工厂,线程池中的线程都是通过这个工厂创建的。

handler:任务拒绝执行策略,当线程池无法处理新来任务时的处理策略。

posted @ 2020-01-04 14:38  gaopengpy  阅读(1095)  评论(0编辑  收藏  举报