獲取子執行緒的執行結果

2021-10-04 21:53:02 字數 930 閱讀 9035

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