线程池最优大小计算公式

java并发编程实战中提到一个计算线程池最优大小的公式


线程数量=cpu的数量*cpu期望利用率*(1 + wait time / service time)。

wait time 等待io完成时间

service time CPU忙处理任务的时间(不包含阻塞等待的时间),例如 处理io返回完成时间 

wait time / service time 称为阻塞系数,对于CPU密集型任务 阻塞系数为0,cpu核的数量就是线程数,拥有更多的线程数也是用处不大的。


比如一个8核CPU,希望这部分工作的CPU使用率20%,任务等待io完成50ms,任务执行io返回5ms。
那么线程数量=8*0.2*(1+50/5)=16

你可能感兴趣的:(java并发)