FutureTask -使用方式 開啟執行緒非同步執行並可以阻塞得到返回值
阿新 • • 發佈:2022-02-12
FutureTask -使用方式 開啟執行緒非同步執行並可以阻塞得到返回值
/** * FutureTask -使用方式 * 開啟一個線非同步執行緒,並讓主執行緒等待返回結果 */ public class FutureTaskSevice { public static void main(String[] args) { FutureTask<String> futureTask=new FutureTask<>(new Callable<String>() { @Override public String call() throws Exception {// todo int count=0; for(int i=0;i<10;i++){ count=count+i; } return "it is subThread complete-count:"+count; } }); // 通過執行緒執行 Thread thread=new Thread(futureTask); thread.start();try { String resultStr = futureTask.get(); System.out.println("resultStr = " + resultStr); }catch (Exception e) { e.printStackTrace(); } System.out.println("I am is main Thread"); } }
重點:FutureTask -使用方式 開啟執行緒非同步執行並可以阻塞得到返回值,如當一個任務比較耗時,主執行緒執行一個任務,開啟一個執行緒執行一個任務,最後需要兩個執行緒的結果,就需要主執行緒執行完後等待子執行緒的執行結果;例項如一次分頁資料請求,主執行緒可以獲取列表資料,子執行緒可以開啟執行統計總行數,最後彙總兩個結果一起返回到頁面。