Callable的demo和用法

2021-09-23 07:39:32 字數 789 閱讀 2228

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...