1.如下圖,thread中並沒有callable的構造方法;
於是,看看runnable;
runnable有兩個子介面,其中有乙個是時間排程的,我們不看;就看第乙個;
runnablefuture這個介面有乙個子實現類futuretask;
futuretask實現 runnablefuture,而runnablefuture又繼承了runnable,所以thread的構造方法可以傳futuretask;
這就是面向介面程式設計,高可擴充套件性;
demo:
public class callabledemo1
int i = 121;
//get是阻塞的方法,一般放在最後執行
system.out.println("resutl:" + (i + futuretask.get()));
new thread();
}}class mythread implements callable catch (interruptedexception e)
return 555;}}
Callable和Runnable用法和比較
比較 callable有返回值並且可以拋異常 runnable無返回值並且不能拋異常。futuretask和future future 介面,用於獲得任務的執行結果。future的get方法獲取結果只有在計算完成時獲取,否則會一直阻塞直到任務轉入完成狀態,然後會返回結果或者丟擲異常。futureta...
Future和Callable的用法總結
executorservice service executors.newcachedthreadpool futurefu service.submit new callable system.out.println 傳送訊息 system.out.println 返回結果是 fu.get 200...
Callable和future介面詳解
runnbale封裝乙個非同步執行的任務,可以把它想象成乙個沒有任何引數和返回值的非同步方法。callable和runnable相似,但是它有返回值。callable介面是引數化的型別,只有乙個方法call public inte ce callable catch runtimeexception...