Runnable和Callable的區別

Runnable和Callable的區別:
(1)Runnable是自從java1.1就有了,而Callable是1.5之後才加上去的
(2)Callable規定的方法是call(),Runnable規定的方法是run()
(3)Callable的任務執行後可返回值,而Runnable的任務是不能返回值(是void)
(4)call方法可以拋出異常,run方法不可以
(5)運行Callable任務可以拿到一個Future對象,表示異步計算的結果。它提供了檢查計算是否完成的方法,以等待計算的完成,並檢索計算的結果。通過Future對象可以瞭解任務執行情況,可取消任務的執行,還可獲取執行結果。
(6)加入線程池運行,Runnable使用ExecutorService的execute方法,Callable使用submit方法。
Callable接口也是位於java.util.concurrent包中。Callable接口的定義爲:

Java代碼
public interface Callable
{
V call() throws Exception;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章