1、corePoolSize(核心线程数):线程池的基本大小,即即使没有空闲线程,在创建新线程前,线程池也会尝试复用已有的空闲线程。除非设置了allowCoreThreadTimeOut
,否则核心线程不会因为空闲而被销毁。
2、maximumPoolSize(最大线程数):线程池允许创建的最大线程数。当线程池的工作队列满了,并且已创建的线程数小于最大线程数,线程池会再创建新的线程来执行任务。
3、keepAliveTime(线程存活时间):线程池中的非核心线程闲置后,保持存活的时间。如果在这段时间内,线程没有被复用,那么线程池会销毁这些线程。
4、unit(时间单位):keepAliveTime
的时间单位,常见的有TimeUnit.SECONDS
(秒)和TimeUnit.MILLISECONDS
(毫秒)。
5、workQueue(工作队列):用于存放待执行的任务的队列。常见的队列有ArrayBlockingQueue
、LinkedBlockingQueue
、SynchronousQueue
和PriorityBlockingQueue
等。队列的选择会影响线程池的行