第三种就是混合型任务:
这种一般可以按照任务执行时间来计算
tasks :每秒的任务并发数
tasktime:处理第个任务所需要的时间 单位:秒
responsetime:系统允许容忍的最大响应时间
核心池大小: corePoolSize = tasks*tasktime
阻塞队列容量:queueCapacity = (coreSizePool/tasktime)*responsetime
最大线程数:maxPoolSize = (max(tasks)- queueCapacity)/(1/taskcost)
其实任务处理时间因为是不固定的所以我们遵守8020的原则。
即80%的任务需要1s那我们认为 tasktime = 1s;
这种一般可以按照任务执行时间来计算
tasks :每秒的任务并发数
tasktime:处理第个任务所需要的时间 单位:秒
responsetime:系统允许容忍的最大响应时间
核心池大小: corePoolSize = tasks*tasktime
阻塞队列容量:queueCapacity = (coreSizePool/tasktime)*responsetime
最大线程数:maxPoolSize = (max(tasks)- queueCapacity)/(1/taskcost)
其实任务处理时间因为是不固定的所以我们遵守8020的原则。
即80%的任务需要1s那我们认为 tasktime = 1s;