newWorkStealingPool和之前的几种线程池的创建方式有很大的不同,之前定长、单例、缓存、定时任务的四大线程池都是基于ThreadPoolExecutor去实现的。newWorkStealingPool则是基于ForkJoinPool的方式构建出来的。
ThreadPoolExecutor的核心特点
只有一个阻塞队列DelayedWorkQueue用来存放当前任务。下图中显而易见四个任务在此队列中阻塞等待,有一个任务来了那就被其中一个线程拿取消费。
ForkJoinPool的核心特点
分叉连接池。当有一个特别大的任务,ForkJoinPool区别于上述四大线程池将大任务交给某一个线程去执行的方式。ForkJoinPool线程池工作的特点就是将这个大任务拆分为多个小任务,放到当前线程的阻塞队列中。其他线程就可以去处理有不同阻塞队列中的线程任务。
代码效果使用演示
- 单线程的效果演示

- 多线程的效果演示

拆分任务的时候不是越多越好。任务体量要大,耗时要长!





![[进阶]网络通信:UDP通信,一发一收、多发多收](https://img-blog.csdnimg.cn/62e62086ea1346e7ba0ccb32535749cd.png)





![[保姆级啰嗦教程] Tesseract OCR 5在Windows 10下编译安装及测试 (亲测成功)](https://img-blog.csdnimg.cn/194b86a7c9ee4341888fdb1899f50e0e.png#pic_center)
![[SpringBoot 分布式调度elasticjob 整合 ]](https://img-blog.csdnimg.cn/14e427049b574c098b97d878911393d8.png)







