SpringBoot2.x非同期タスク

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秒かかったこれを聞いて、非同期使用します

公開された10元の記事 ウォンの賞賛0 ビュー508

おすすめ

転載: blog.csdn.net/DNCCCC/article/details/105033852