java.util.concurrent.Future
Future代表一個異步計算的結果。它提供了方法來檢查是否計算已經完成,還是正在計算而處於等待狀態,並且也提供了獲取計算結果 方法。當計算完成后,只能通過get方法來獲取執行結果,必要的話該方法會阻塞。通過cancel方法可以取消計算。一旦計算已經完成,便無法取消。
主要方法:
cancel():取消任務
get():等待任務執行完成,並獲取執行結果
get(long timeout, TimeUnit unit):在指定的時間內會等待任務執行,超時則拋異常
下面是具體代碼片段:
我想到這樣一個應用場景:
將二維碼串返回給前台的同時啟動一個線程,運行一個Future,在Future的任務里面做這樣一件事情:查詢異步通知推送記錄,如果已經推送過,則取消任務,如果超時則自動向前端推送消息,告知支付超時。