线程池的核心参数介绍

我们都知道线程池中很多的参数,了解这些参数的意义对实际问题的定义和解决是非常重要的,本文将会重点介绍:corePoolsize、maxPoolSize、keeyAliveTime、ThreadFactory、workQueue及Handler

corePoolSize

  核心线程数,即就是中线程池中长时间稳定存活的线程数

maxPoolSize

  最大线程数,重点强调线程中最大可包含的线程数。最大线程数的上限需要根据实际情况而定

keepAliveTime

  线程的存活时间,该参数是指非核心线程的存活时间,用来严格控制线程池中线程的数量尽可能的保持在一定的范围内,若要修改核心线程的存活时长,可参考相关参数

ThreadFactory

  线程创建的工厂,新的线程都是由ThreadFactory创建的,系统默认使用的是Executors.defaultThreadFactory创建的,用它创建出来的线程的优先级、组等都是一样的,并且他都不是守护线程。我们也可以使用自定义的线程创建工厂,并对相关的值进行修改

WorkQueue

  线程的工作队列,常见的类型有三种,如下

  1.直接交换:SynchronousQueue,任务不多,是没有容量的,maxPoolSize需要大一点

  2.*队列:LinkedBlockingQueue,可产生OOM

  3.有界队列:ArrayBlockingQueue

 

上一篇:【QT多线程】继承于QObject的类转移到QThread


下一篇:QThread