[英]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
。 如何并行运行? 我看了ExecutorService
和ForkJoin
,但似乎都不得不一次又一次地运行相同的确切代码。 那不是我在这里所做的。 加快速度的最佳方法是什么?
当然,您可以将不同的任务提交给一个执行者。 您只需要分开期货以获取每个任务的结果:
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.