future常用方法:
v get() :獲取非同步執行的結果,如果沒有結果可用,此方法會阻塞直到非同步計算完成。
v get(long timeout , timeunit unit) :獲取非同步執行結果,如果沒有結果可用,此方法會阻塞,但是會有時間限制,如果阻塞時間超過設定的timeout時間,該方法將丟擲異常。
boolean isdone() :如果任務執行結束,無論是正常結束或是中途取消還是發生異常,都返回true。
boolean iscanceller() :如果任務完成前被取消,則返回true。
boolean cancel(boolean mayinterruptrunning) :
如果任務還沒開始,執行cancel(…)方法將返回false;如果任務已經啟動,執行cancel(true)方法將以中斷執行此任務執行緒的方式來試圖停止任務,如果停止成功,返回true;當任務已經啟動,執行cancel(false)方法將不會對正在執行的任務執行緒產生影響(讓執行緒正常執行到完成),此時返回false;當任務已經完成,執行cancel(…)方法將返回false。mayinterruptrunning引數表示是否中斷執行中的執行緒。
通過方法分析我們也知道實際上future提供了3種功能:
(1)能夠中斷執行中的任務
(2)判斷任務是否執行完成
(3)獲取任務執行完成後額結果。
簡單的例子來體會使用callable和future來獲取任務結果的用法:
public
class
testmain})
; system.out.
println
(thread.
currentthread()
.getname()
+"執行緒執行其他任務");
// get() :獲取非同步執行的結果,如果沒有結果可用,此方法會阻塞直到非同步計算完成。
integer integer = future.
get();
system.out.
println
(integer);if
(executor != null)
}}
future模式: 多執行緒學習之Callable介面和Future類
二 編寫每個執行緒類的執行任務,實現callable介面,重寫call方法滿足自己的需求 三 主方法中啟動run方法 四 總結 public class mythread extends thread 重寫run方法滿足自己的需求 override public void run else brea...
多執行緒Callable
runnable不支援異常處理,而callable可以異常處理 runnable不能獲取執行緒塊的返回值,而callable可以通過futruetask獲取返回值 建立2個執行緒,分別獲取userinfo資訊與stuinfo資訊 callableuserinfocallable new callab...
多執行緒 Callable實現
1 實現callable介面 定義類studentthread實現callable介面,其中dealstudentinfores為業務處理完返回的結果集dto,dealstudentinforesq為需要處理的學生資訊的dto dealstudentinforesq學生資訊dto data apim...