在Java中設(shè)計并發(fā)線程時使用Runnable和Callable接口有什么區(qū)別,為什么要選擇其中一個?
3 回答

米脂
TA貢獻1836條經(jīng)驗 獲得超3個贊
請看這里的解釋。
Callable接口類似于Runnable,因為它們都是為其實例可能由另一個線程執(zhí)行的類而設(shè)計的。但是,Runnable不會返回結(jié)果,也不會拋出已檢查的異常。

慕標琳琳
TA貢獻1830條經(jīng)驗 獲得超9個贊
一個Callable需要實現(xiàn)call()方法而Runnable需要實現(xiàn)run()的方法。
A Callable可以返回值但不能返回Runnable。
A Callable可以拋出已檢查的異常,但Runnable不能。
A Callable可以與ExecutorService#invokeXXX(Collection<? extends Callable<T>> tasks)方法一起使用但Runnable不能使用。
public interface Runnable {
void run();
}
public interface Callable<V> {
V call() throws Exception;
}
添加回答
舉報
0/150
提交
取消