线程池

alt

execute 方法执行逻辑有这样几种情况:

  1. 如果当前运行的线程少于 corePoolSize,则会创建新的线程来执行新的任务;
  2. 如果运行的线程个数等于或者大于 corePoolSize,则会将提交的任务存放到阻塞队列 workQueue 中;
  3. 如果当前 workQueue 队列已满的话,则会创建新的线程来执行任务;
  4. 如果线程个数已经超过了 maximumPoolSize,则会使用饱和策略 RejectedExecutionHandler 来进行处理。

CPU 密集型
Ncpu+1

IO密集型
2xNcpu

Runtime.getRuntime().availableProcessors()