• 通过设置corePoolSize和maximumPoolSize相同,就可以创建固定大小的线程池
    • 线程池希望保持较少的线程数,并且只有在变得很大时才增加它
    • 通过设置maximunPoolSize为很高的值,例如Integer.MAX_VALUE,可以允许线程池容纳任意数量的并发任务
    • 只有在队列填满时才创建多于corePoolSize的线程,所以如果你使用的是无界队列(例如LinkedBlokingQueue),那么线程数就不会超过corePoolSize

    KeepAliveTime
    如果线程池当前的线程数多于corePoolSize,那么多余的线程空闲时间超过KeepAliveTime,它们就会被终止

    ThreadFactory用来创建线程
    新的线程是由ThreadFactory创建的,默认使用Executors.defaultThreadFactory(),创建出来的线程都在一个线程组,拥有同样的NORM_PRIORITY优先级并且都不是守护线程。如果自己指定ThreadFactory,那么就可以改变线程名,线程组,优先级,是否是守护线程等。

    工作队列
    有3种常见的队列类型:
    1.直接交接:SynchronousQueue
    2.无界队列:LinkedBlockingQueue
    3.有界队列:ArrayBlockingQueue