ThreadPoolExecutor
Constructor Detail
ThreadPoolExecutor 类共有四个构造函数,最多共有七个参数,接下来依次对这七个参数进行介绍

ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueue, ThreadFactor threadFactor, RejectedExecutionHandler handler)
corePoolSize:要保留在池中的线程数,即使他们处于空闲状态,除非allowCoreThreadTimeOut已设置。默认情况下,在创建了线程池后,线程池中的线程数为0,当有任务来之后,就会创建一个线程去执行任务,当线程池中的线程数数目少于corePoolSize时,有新任务进来就新建一个线程,即使有的线程没事干,当线程池中的线程数目达到corePoolSize时,将到达的任务放在缓存队列中。maximumPoolSize:池中允许的最大线程数。keepAliveTime:当线程数大于核心数时,这是多于空闲线程在终止前等待新任务的最长时间。默认情况下,只有当线程池中的线程数大于corePoolSize时,keepAliveTime才会起作用,直到线程池中的线程数不大于corePoolSizeunit-keepAliveTime:参数时间的单位workQueue:用于在执行任务之前保存任务的队列,这个队列只保存方法Runnable提交的任务executethreadFactory:执行器创建新线程时使用的工厂handler:由于线程达到边界或者队列满时阻塞执行时使用的处理程序
当满足以下条件之一时,就会抛出异常 IllegalArgumentException :
corePoolSize< 0maximumPoolSize<= 0keepAliveTime< 0corePoolSize>maximumPoolSizeNullPointerException:如果任务队列,工厂或者处理程序为空时
1037

被折叠的 条评论
为什么被折叠?



