做用:java
接受多線程的執行結果多線程
全路徑:ide
java.util.concurrentspa
聲明:線程
public interface Future<V> blog
類圖結構:get
方法it
boolean cancel(boolean mayInterruptIfRunning);//方法能夠用來中止一個任務,若是任務能夠中止(經過mayInterruptIfRunning來進行判斷),則能夠返回true,若是任務已經完成或者已經中止,或者這個任務沒法中止,則會返回false. boolean isCancelled(); //判斷當前方法是否取消 boolean isDone(); //判斷當前方法是否完成 V get() throws InterruptedException, ExecutionException; // 方法能夠當任務結束後返回一個結果,若是調用時,工做尚未結束,則會阻塞線程,直到任務執行完畢 V get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException; //作多等待timeout的時間就會返回結果
舉個例子io
Callable callable=new Callable() { @Override public String call() throws Exception { Thread.sleep(1000*5); return "233"; } }; FutureTask<String> ft=new FutureTask<>(callable); new Thread(ft).start(); System.out.println(ft.get());