public
class
thread
implements
runnable
private
static
class
task
implements
callable
}
public
static
void
main
(string[
] args)
throws executionexception, interruptedexception
private
static
class
task
implements
callable
}
future介面中方法
其實根據命名,已經可以推測出這些方法的作用了,下面主要記錄一些注意點
取消執行緒坑時可能遇到的幾種情況
1.執行緒還沒有執行:返回true
2.執行緒已經執行完畢或者取消了,返回false;
3.執行緒已經開始執行了,此時根據設定的mayinterruptifrunning來判斷是否直接取消任務。mayinterruptifrunning為ture適用於子任務有邏輯處理中斷。false適用於子執行緒沒有能力處理中斷;需求是需要等待已經開始的執行緒執行完畢。
futuretask:實現了runnable和future介面,表示非同步計算的結果。
Future獲取子執行緒的執行結果
runnable的缺陷 functionalinte ce public inte ce runnable callable介面類似於runnable,被其他執行緒執行的任務 實現call方法,有返回值 functionalinte ce public inte ce callable callab...
如何獲取子執行緒的執行結果
對於執行緒的管理,我們不僅可以通過執行緒池進行管理,我們還可以通過future和callable進行管理。runnable介面無法返回乙個值返回。runnable介面原始碼 functionalinte ce public inte ce runnable runnable介面不能丟擲checked...
獲取執行緒的執行結果
最本質的區別在於,runnable沒有返回結果,callable會有乙個返回結果,返回結果是泛型,可以自己定義。舉例子說明 上述例子中可以看到,callable可以定義乙個返回結果,通過futuretask的get方法可以獲得執行緒執行後的結果 阻塞等待結果 原始碼檢視 allocates a ne...