一、默认值
- corePoolSize=1
- eueCapacity=Integer.MAX_VALUE
- maxPoolSize=Integer.MAX_VALUE
- epAliveTime=60s
- allowCoreThreadTimeout=false
- jectedExecutionHandler=AbortPolicy()
二、核心参数设置
为了说明合理设置的条件,我们首先确定有以下几个相关参数:
tasks
,程序每秒需要处理的最大任务数量(假设系统每秒任务数为 100~1000)tasktime
,单线程处理一个任务所需要的时间(每个任务耗时 0.1 秒)responsetime
,系统允许任务最大的响应时间(每个任务的响应时间不得超过 2 秒)
1 corePoolSize:核心线程数
每个任务需要 tasktime
秒处理,则每个线程每秒可处理1/tasktime 个任务。系统每秒有 tasks 个任务需要处理,则 corePoolSize
计算公式为:
corePoolSize = tasks * tasktime
即 tasks * tasktime
个线程数。假设系统每秒任务数为 100 到 1000 之间,每个任务耗时 0.1 秒,则需要 100 x 0.1 至