天天看點

Spring5.x建立異步方法

1. TaskExecutor

Spring異步線程池的接口類,其實質是java.util.concurrent.Executor

Spring 已經實作的異常線程池:

SimpleAsyncTaskExecutor:不是真的線程池,這個類不重用線程,每次調用都會建立一個新的線程。

SyncTaskExecutor:這個類沒有實作異步調用,隻是一個同步操作。隻适用于不需要多線程的地方

ConcurrentTaskExecutor:Executor的适配類,不推薦使用。如果ThreadPoolTaskExecutor不滿足要求時,才用考慮使用這個類

SimpleThreadPoolTaskExecutor:是Quartz的SimpleThreadPool的類。線程池同時被quartz和非quartz使用,才需要使用此類

ThreadPoolTaskExecutor :最常使用,推薦。 其實質是對java.util.concurrent.ThreadPoolExecutor的包裝

2. @Async

spring對過@Async定義異步任務

異步的方法有3種

最簡單的異步調用,傳回值為void

帶參數的異步調用 異步方法可以傳入參數

異常調用傳回Future