需求分页查询数据列表的时候同时查询总条数想并发查询但是感觉下面的代码有点繁琐有没更简便的方式或者有什么第三方框架能够简化类似这样的逻辑ExecutorServiceexecutorService=Executors.newFixedThreadPool(2);CountDownLatchcountDownLatch=newCountDownLatch(2);Mapmap=newHashMap();//一个线程查记录数executorService.submit(()->{Listdata=Lists.newArrayList(1,2,3);map.put("data",data);countDownLatch.countDown();});//一个线程查总条数executorService.submit(()->{intcount=10;map.put("count",count);countDownLatch.countDown();});countDownLatch.await();System.out.println(map);
2 回答

翻过高山走不出你
TA贡献1875条经验 获得超3个赞
HashMap是非线程安全的,你这样用一定会有问题的。不清楚你要达到的目标是什么,至少从上面的例子上来看,多线程不但没有必要,还引入了新的问题。说说你的具体应用场景,也许在特定场景下你的想法是合适的。

慕虎7371278
TA贡献1802条经验 获得超4个赞
一种简便的方案CompletableFuturefuture=CompletableFuture.supplyAsync(()->{ Listdata=Lists.newArrayList(1,2,3); returndata;}).thenAcceptBoth(CompletableFuture.supplyAsync(()->10),(d,c)->{Mapmap=newHashMap<>(); map.put("data",d);map.put("count",c);System.out.println(map);});future.get();
添加回答
举报
0/150
提交
取消