如何确定核心线程数:
IO密集型任务
一般来说:文件读写、DB读写、网络请求等
核心线程数大小设置为2N+1
CPU密集型任务:
一般来说:计算型代码、Bitmap转换、Gson转换等
核心线程数大小设置为N+1
总结:
1、高并发、任务执行时间短 是 CPU核数+1,减少线程上下文切换
2、并发不高、任务执行时间长
- IO密集型任务 设置为 CPU核数 * 2 + 1
- 计算密集型任务 设置为 CPU核数 + 1
3、并发高、业务执行时间长,解决这种类型任务的关键不在于线程池而是整体架构的设计,看看这些业务里面某些数据是否能做缓存是第一步,增加服务器是第二步