@Async
在Spring 3.x之後,通過内置@Async标明異步方法,可以簡化異步開發流程。
@Async既可提供無傳回值的調用,也可提供有傳回值的調用,下文将分别介紹兩種使用方式。
Spring線程池配置有兩種基本配置方式,此處實用其中一種
測試類
-測試代碼
測試結果
結果分析
從代碼輸出來看,五個任務在同一時間被執行,說明@Async注解能夠達到異步執行方法的目的。
@Async标記的方法,可傳回AsyncResult結果,該類為Future子類,是以該類可通過future.get()和future.get(long timeout, TimeUnit unit)拿到傳回結果;
測試代碼
通過設定逾時時,可在約定時間内擷取結果,避免程式hang住,該方法較為實用。