newCachedThreadPool: 缓存线程池
corePoolSize=0, maxinumPoolSize=+∞,队列长度=0 ,
因此线程数量会在corePoolSize到maxinumPoolSize之间一直灵活缓存和变动, 且不存在队列等待的情况,一来任务我就创建,用完了会释放。
newFixedThreadPool :定长线程池
corePoolSize= maxinumPoolSize=构造参数值, 队列长度=+∞。
因此不存在线程不够时扩充的情况
newScheduledThreadPool :定时器线程池
提交定时任务用的,构造参数里会带定时器的间隔和单位。 其他和FixedThreadPool相同,属于定长线程池。
newSingleThreadExecutor : 单线程池
corePoolSize=maxinumPoolSize=1, 队列长度=+∞
只会跑一个任务, 所以其他的任务都会在队列中等待,因此会严格按照FIFO执行
newWorkStealingPool(继承自ForkJoinPool ): 并行线程池
如果你的任务执行时间很长,并且里面的任务运行并行跑的,那么他会把你的线程任务再细分到其他的线程来分治。
ForkJoinPool介绍:https://blog.csdn.net/m0_37542889/article/details/92640903