1
如果應用程序在查詢返回響應之前被阻塞,那麼在線程池上執行查詢沒有意義嗎?在Java中,每個查詢應該在單獨的線程中嗎?
如果應用程序在查詢返回響應之前被阻塞,那麼在線程池上執行查詢沒有意義嗎?在Java中,每個查詢應該在單獨的線程中嗎?
只有當您期望在此期間執行工作時,否則就沒有意義了。一個很好的方法是讓你的API返回一個Future
。喜歡的東西:
interface QueryService {
public FutureTask<QueryResult> query(Query q);
}
FutureTask<QueryResult> res = query(..);
// do work
res.get(); // blocks until result is in
當然,你通常應該提交您的Callables
或Runnables
到ExecutorService
。
感謝這個答案是足夠的,因爲這個主題上有另一個線程。 – MetaChrome
@dlots:你可以請發佈該線程的鏈接? –