写法"/>
java处理百万数据,最简单明了的写法
注意分割需要引用爪哇pom
<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>21.0</version></dependency>
/*** 新增项目通道网络*/
@PostMapping("/rouPathNetWorkAddBatch")
public AjaxResult rouPathNetWorkAddBatch(@RequestBody List<PrjRoutingpathNetwork> rouTingPathNetworkList) throws ExecutionException, InterruptedException {//按1000条分割List<List<PrjRoutingpathNetwork>> networkList = ListUtils.partition(rouTingPathNetworkList, 1000);//获取线程池中的@beanThreadPoolTaskExecutor executor = SpringUtils.getBean("threadPoolTaskExecutor");//倒计数器,networkList.size是锁数量也是 线程数量CountDownLatch latch = new CountDownLatch(networkList.size());try{for (List<PrjRoutingpathNetwork> n : networkList) {//每次循环创建一个线程 new Runnable()executor.execute(new Runnable() {@Overridepublic void run() {//执行任务prjRoutingpathNetworkService.insertPrjRoutingpathNetworks(n);//去掉一把锁latch.countDown();}});}//校验锁数量是否为0,(还有没有)latch.await();}catch (Exception e){return AjaxResult.error("导入出现错误");}return toAjax(1);
}
更多推荐
java处理百万数据,最简单明了的写法
发布评论