1. 程式人生 > >談談多執行緒Runnable和Callable介面

談談多執行緒Runnable和Callable介面

  • Runnable介面程式碼
public interface Runnable {
    public abstract void run();
}
  • Callable介面程式碼
public interface Callable<V> {
    V call() throws Exception;
}

相同點:

  1. 兩者都需要呼叫Thread.start()啟動執行緒
  2. 兩者都能編寫多執行緒

不同點:

  1. Callable規定的方法是call(),Runnable規定的方法是run()
  2. Callable的任務執行後可返回值,而Runnable的任務是不能返回值的
  3. call方法可以丟擲異常,run方法不可以
  4. 執行Callable任務可以拿到一個Future物件,表示非同步計算的結果。它提供了檢查計算是否完成的方法,以等待計算的完成,並檢索計算的結果。通過Future物件可以瞭解任務執行情況,可取消任務的執行,還可獲取執行結果。