线程执行方式
-
线程的执行是由CPU进行调度的,一个CPU在 同一时刻只会执行一个线程
-
操作系统利用了时间片轮转的方式,CPU给每个任务都服务一定的时间,然后把当前任务的状态保存下来,再加载下一个任务的状态后,继续服务下一个任务。任务的保存及再加载的过程叫作 上下文切换 ,上下文切换会导致额外的开销
线程池容量设置参考
建议与cpu相关,如果是 不经常 使用的计算service推荐大容量进行优化
// prod 4核cpu
// 如果是CPU(计算)密集型应用,则线程池大小设置为N+1
// 如果是IO(网络)密集型应用,则线程池大小设置为2N+1
public final static int curSystemThreads = Runtime.getRuntime().availableProcessors() * 2 + 1;