execute 方法执行逻辑有这样几种情况:
- 如果当前运行的线程少于 corePoolSize,则会创建新的线程来执行新的任务;
- 如果运行的线程个数等于或者大于 corePoolSize,则会将提交的任务存放到阻塞队列 workQueue 中;
- 如果当前 workQueue 队列已满的话,则会创建新的线程来执行任务;
- 如果线程个数已经超过了 maximumPoolSize,则会使用饱和策略 RejectedExecutionHandler 来进行处理。
CPU 密集型
Ncpu+1
IO密集型
2xNcpu
Runtime.getRuntime().availableProcessors()