Runnable與Callable的比較

2021-09-12 23:41:40 字數 804 閱讀 5699

public inte***ce callable

public inte***ce runnable

相同點:

兩者都是介面;

兩者都可用來編寫多執行緒程式;

兩者都需要呼叫thread.start()啟動執行緒;

不同點:

兩者最大的不同點是:實現callable介面的任務執行緒能返回執行結果;而實現runnable介面的任務執行緒不能返回結果;

callable介面的call()方法允許丟擲異常;而runnable介面的run()方法的異常只能在內部消化,不能繼續上拋;

注意點:

public class callableimpl implements callable

private string acceptstr;

@override

public string call() throws exception

public static void main(string args) throws executionexception, interruptedexception

}

futruetask繼承關係:

原理:thread類呼叫 futuretask 中的 run 方法,run 方法又去呼叫了 call 方法,並把返回值儲存起來,通過 future 中的 get 方法獲取 call 方法的返回值。

Thread 與Runnable區別詳解

使用thread實現執行緒不能實現資源共享 class mythread extends thread public void run public class threaddemo02 使用runnable實現執行緒可以實現資源共享 class mythread implements runnab...

執行緒Thread與Runnable實現

當new 乙個thread的時候,就是在主線程的基礎上再開乙個子執行緒,cpu一會兒給主線程用,一會兒給子執行緒用,所以多執行緒會降低工作效率 1 thread 自己實現自己的run方法 public static voidmain string args throwsinterruptedexce...

Thread與Runnable的關係

public class threaddemo start 對於上面的這段 它的執行結果是 thread的run 方法 但這是為什麼呢?在看下面這段 public class threaddemo start 上述 的執行結果是 thread的run 方法 runnable的run方法 這就不得不說...