私はAPIを開発中です。このAPIは結果を得るために2つのDBクエリを実行する必要があります。コントローラーでの戻り値の型として呼び出し可能に使用され
Spring 4で並列スレッドを実行するための洗練された方法
- :
は、私は、次の戦略を試してみました。 2つのクエリを並行して実行し、終了時刻を検出するために、2つのスレッド(CallableとCoundownLatchを使用)を作成しました。
public class PetService { public Object getData() { CountDownLatch latch = new CountDownLatch(2); AsyncQueryDBTask<Integer> firstQuery= new AsyncQueryDBTask<>(latch); AsyncQueryDBTask<Integer> secondQuery= new AsyncQueryDBTask<>(latch); latch.await(); } public class AsyncQueryDBTask<T> implements Callable { private CountDownLatch latch; public AsyncQueryDBTask(CountDownLatch latch) { this.latch = latch;} @Override public T call() throws Exception { //Run query latch.countDown(); }
それはうまく働いたが、私はどこかで春の構造を壊すだと感じています。
は、私は - どのように独自のクエリを実行する2つのスレッドの両方を知って自分の仕事を完了し
春4にデータを取得するための最も効率的な方法は何だろうか?
- スレッドリソースの使用や解放などの制御方法
ありがとうございます。
https://www.mkyong.com/spring/spring-and-java-thread-example/ – StanislavL