**高并发、微服务 、性能调优实战案例100讲，所有案例均源于个人工作实战，均配合代码落地**

加我微信：itsoku，所有案例均提供在线答疑。



# 多线程任务批处理通用工具类



## 需求

使用线程池批量发送短信，当短信发送完毕之后，方法继续向下走。



## 技术点

- 线程池：ExecutorService
- CountDownLatch：可以让一个或者多个线程等待一批任务执行完毕之后，继续向下走



## 新手版代码实现

```java
com.itsoku.SimpleBatchTask
```



## 高手如何实现？

这个场景属于通用型的场景，很多业务都会用到，将通用的代码提取出来，可以丢到一个工具类中来实现这个功能。

下面来看下高手版如何实现。



## 高手版代码实现

```java
com.itsoku.TaskDisposeUtils
```

重点在于下面2行代码，简化了很多

```java
 ExecutorService executorService = Executors.newFixedThreadPool(10);
 //调用工具类批处理任务
 TaskDisposeUtils.dispose(taskList, TaskDisposeUtils::disposeTask, executorService);
```



## 源码如何获取？加我微信：itsoku

视频号：程序员路人甲

公众号：路人甲Java

个人网站：http://itsoku.com/



## 所有案例均提供在线技术支持&答疑