實現執行緒的第三種方式 實現Callable介面
阿新 • • 發佈:2018-11-27
package com.juc; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; /** * Created by fuguowen on 2018/8/5 21:12 */ /** * 一. 建立執行執行緒的方式三:實現Callable介面,相較於實現Runnable介面的方式,方法可以有返回值,並且可以丟擲異常。 * * 二。執行Callable方式,需要FutureTask實現類的支援,用於接受運算的結果,FutureTask是Future介面的實現類。 */ public class TestCallable { public static void main(String[] args) { MyCallable mc = new MyCallable(); //1.執行Callable方式,需要FutureTask實現類的支援,用於接受運算結果 FutureTask<Integer> ft = new FutureTask<>(mc); new Thread(ft).start(); //2.接受執行緒運算的結果 try { Integer sum = ft.get(); System.out.println(sum); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } } } class MyCallable implements Callable<Integer>{ @Override public Integer call() throws Exception { int sum=0; for (int i = 0; i <1000 ; i++) { sum+=i; } return sum; } }