Java如何确定核心线程数

78 阅读1分钟

如何确定核心线程数:

IO密集型任务

一般来说:文件读写、DB读写、网络请求等

核心线程数大小设置为2N+1

CPU密集型任务:

一般来说:计算型代码、Bitmap转换、Gson转换等

核心线程数大小设置为N+1

总结:

1、高并发、任务执行时间短 是 CPU核数+1,减少线程上下文切换

2、并发不高、任务执行时间长

  • IO密集型任务 设置为 CPU核数 * 2 + 1
  • 计算密集型任务 设置为 CPU核数 + 1

3、并发高、业务执行时间长,解决这种类型任务的关键不在于线程池而是整体架构的设计,看看这些业务里面某些数据是否能做缓存是第一步,增加服务器是第二步