繁体   English   中英

如何在Java中并行运行多个查询?

[英]How do I run multiple queries in parallel in java?

我有一个bean ,可以在页面上显示很多信息。 该信息的每一位都是通过命中db来获得的,当前这是顺序发生的。 这是我的bean一些示例代码:

int transactionCount = dao.getTransactionCount();
int personCount = dao.getPersonCount();
int carCount = dao.getCarCount();
int houseCount = dao.getHouseCount();

我正在运行Java 7 如何并行运行? 我看了ExecutorServiceForkJoin ,但似乎都不得不一次又一次地运行相同的确切代码。 那不是我在这里所做的。 加快速度的最佳方法是什么?

当然,您可以将不同的任务提交给一个执行者。 您只需要分开期货以获取每个任务的结果:

static ExecutorService executor = Executors.newFixedThreadPool(NTHREDS);

//start threads
Future<Integer> transactionCountFuture = executor.submit(()-> dao.getTransactionCount());
Future<Integer> personCountFuture = executor.submit(()-> dao.getPersonCount());
Future<Integer> carCountFuture = executor.submit(()-> dao.getCarCount());
Future<Integer> houseCountFuture = executor.submit(()-> dao.getHouseCount());

//wait until all calls returns a result
int transactionCount = transactionCountFuture.get();
int personCount = personCountFuture.get();
int carCountCount = carCountFuture.get();
int houseCount = houseCountFuture.get();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM