
介紹
同步調用
先來演示一下什么是同步調用

測試方法

輸出如下
doTaskOne start 1566121320372doTaskOne end 1566121321373doTaskTwo start 1566121321373doTaskTwo end 1566121322374
可以看到方法一執行完畢,方法二才會執行
異步調用不返回值
1.Spring Boot啟動類上加@EnableAsync注解
@SpringBootApplication@EnableAsync
2.方法上加@Async注解

測試類如下

最后的TimeUnit.SECONDS.sleep(3)保證主線程存活,不然主線程執行完看不到子線程輸出的end,輸出如下
doTaskOne start 1566121729140doTaskTwo start 1566121729140doTaskOne end 1566121730140doTaskTwo end 1566121730140
看輸出,2個任務同時啟動。2個沒有關系的任務以前需要2s才能執行完,異步后1s就能執行完,效率提高。
異步調用返回值

測試類

輸出如下
doTaskTwo start 1566122170684doTaskOne start 1566122170684doTaskTwo end 1566122171684doTaskOne end 1566122171684taskOne returntaskTwo return
Future類的get方法是阻塞方法,沒有結果返回時會一直阻塞。