FutureTask的cancel 方法分析

2021-08-25 10:56:12 字數 524 閱讀 7926

面試時被問到futurtask的取消原理,沒回答上來,回來閱讀以下原始碼做個記錄。

//有乙個入參,需要說明task是否是可中斷的

public

boolean

cancel(boolean mayinterruptifrunning)

//如果是不可中斷的只修改task的狀態為cancelled

else

if (!unsafe.compareandswapint(this, stateoffset, new, cancelled))

return

false;

//執行finishcompletion方法

/** * removes and signals all waiting threads, invokes done(),and nulls out callable.

*/finishcompletion();

return

true;

}

修改SearchBar的取消按鈕Cancel為中文

一開始在網上看到很多方法都是迴圈,好吧,我也迴圈 建立uisearchbar的時候迴圈,不行 用searchbartextdidbeginediting事件去迴圈,也不行 無語了,搜尋了baidu第一頁都是迴圈的,找了半小時,總算是找到原因了 原來在ios7以後uisearchbar的迴圈需要sea...

FutureTask基本用法

1.futuretask獲取非同步執行的資料 場景 非同步執行10次1 99的計算結果,然後再執行主業務邏輯,最後獲取每次執行的結果,再把10次的計算結果相加 public static void main string args throws interruptedexception,execut...

FutureTask簡單實戰

執行緒池的實現核心之一是futuretask。在提交任務時,使用者實現的callable例項task會被包裝為futuretask例項ftask 提交後任務非同步執行,無需使用者關心 當使用者需要時,再呼叫futuretask get 獲取結果 或異常。方法中可能會呼叫到多個服務 方法,且這些服務 ...