在Java中,每个查询应该在一个单独的线程中吗?

时间:2011-09-27 21:44:02

标签: java database multithreading

如果应用程序阻塞,直到查询返回响应,那么在线程池上执行查询是否有意义?

1 个答案:

答案 0 :(得分:5)

只有当你期望在那段时间内完成工作时,否则没有意义。一个很好的方法是让您的API返回Future。类似的东西:

interface QueryService {
   public FutureTask<QueryResult> query(Query q);
}

FutureTask<QueryResult> res = query(..);
// do work
res.get(); // blocks until result is in

当然,您通常应该将CallablesRunnables提交给ExecutorService