concurrent (八) Future

做用: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());
相關文章
相關標籤/搜索