1.futuretask獲取非同步執行的資料
場景:非同步執行10次1+。。。+99的計算結果,然後再執行主業務邏輯,最後獲取每次執行的結果,再把10次的計算結果相加
public static void main(string args) throws interruptedexception, executionexception
system.out.println("子任務已經全部提交完成,繼續執行主任務");
timeunit.milliseconds.sleep(5000);
//開始計算非同步執行的結果
integer totalresult = 0;
for (int j=0;j
@override
public integer call() throws exception
//為了說明非同步執行,sleep5秒
timeunit.milliseconds.sleep(5000);
system.out.println("子任務==="+threadname+"===執行完成,結果是:"+result);
return result;
}}
2. FutureTask簡單實戰
執行緒池的實現核心之一是futuretask。在提交任務時,使用者實現的callable例項task會被包裝為futuretask例項ftask 提交後任務非同步執行,無需使用者關心 當使用者需要時,再呼叫futuretask get 獲取結果 或異常。方法中可能會呼叫到多個服務 方法,且這些服務 ...
FutureTask 原始碼閱讀
public void run catch throwable ex if ran set result finally get操作的核心方法 private intawaitdone boolean timed,long nanos throws interruptedexception int ...
多執行緒之 FutureTask
兩種使用場景 1.非同步任務 主線程繼續執行,當主線程需要非同步執行緒的結果時,直接去調非同步執行緒就可以 注意一點 對於多執行緒共享的物件,採用volatile unsafe的方法,代替鎖操作,這個是很重要的一點操作 獲取任務的執行結果用乙個集合儲存 public class futuretask...