多线程使用,使用线程池批量执行任务
工作中需要进行大量的计算,从数据库中读取数据,然后计算结果,最后保存到数据库中。
在上千万的数据情境下,顺序执行比较耗时。
方法,最简单的可以使用Executors创建线程池,然后使用:
List<XXX> allTaskList = // 从数据库中查询,得到需要处理的任务
ExecutorService executorService = Executors.newFixedThreadPool(100); // 也可以自己定义线程池
for (XXX task: allTaskList ) {
executorService.submit(() -> doWork(task); // 定义执行单个任务的方法
}
executorService.shutdown();
还没有评论,来说两句吧...