1. @EnableAsync開口関数を使用して注釈クラス、自動スキャン
上記プラス@Async方法2.
私は、テストクラスを書くためにここにいます
@Component @Async パブリッククラスAsyncTask { 公共ボイドTASK1は()例外:InterruptedExceptionをスロー{ 長い始める=にSystem.currentTimeMillis(); Thread.sleep(1000); 長い端=にSystem.currentTimeMillis(); 長い合計=終了-開始。 System.err.println( "任务1耗时:" +合計)。 } 公共ボイドタスク2()は例外:InterruptedExceptionをスロー{ 長い始める=にSystem.currentTimeMillis(); Thread.sleep(2000); 長い端=にSystem.currentTimeMillis(); 長い合計=終了-開始。 System.err.println( "任务2耗时:" +合計)。 } 公共ボイドTASK3()は、{例外:InterruptedExceptionをスロー 長い)(=にSystem.currentTimeMillis始めます。 Thread.sleep(3000); 長い端=にSystem.currentTimeMillis(); 長い合計=終了-開始。 System.err.println( "任务3耗时:" +合計)。 } }
そして、コントローラ非同期メソッド呼び出し、この方法でタスクを追加
/ * *异步任务 * / @GetMapping( "async_total") 公衆ロングAsyncTotal()が例外:InterruptedExceptionをスロー{ 長い)(=にSystem.currentTimeMillis始めます。 asyncTask.task1(); asyncTask.task2(); asyncTask.task3(); 長い端=にSystem.currentTimeMillis(); 長いcounttotal =終了-開始。 counttotalを返します。 }
私たちは、私が一緒に6秒を待つように3つのタスクを持っているので、6秒の最小値を過ごすために必要な場所の同期がある場合
しかし、私はわずか2秒かかったこれを聞いて、非同期使用します