FutureTask 原始碼閱讀

2021-07-26 16:59:18 字數 2919 閱讀 1448

public

void

run() catch (throwable ex)

if (ran)

set(result);

}} finally

}

/**

get操作的核心方法

*/private

intawaitdone(boolean timed, long nanos)

throws interruptedexception

int s = state;

if (s > completing)

else

if (s == completing) // cannot time out yet

thread.yield();

else

if (q == null)

q = new waitnode();

else

if (!queued)

queued = unsafe.compareandswapobject(this, waitersoffset,

q.next = waiters, q);

else

if (timed)

locksupport.parknanos(this, nanos);

}else

locksupport.park(this);

}}

/**

*@throws cancellationexception

*/public v get() throws interruptedexception, executionexception

/***@throws cancellationexception

*/public v get(long timeout, timeunit unit)

throws interruptedexception, executionexception, timeoutexception

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦:

markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。 —— [ 維基百科 ]

使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細語法參考幫助?。

本編輯器支援markdown extra,  擴充套件了很多好用的功能。具體請參考github.

markdown extra**語法:

專案**

computer

$1600

phone

$12pipe$1

可以使用冒號來定義對齊方式:

專案**

數量computer

1600 元

5phone

12 元

12pipe

1 元234

markdown extra定義列表語法:

專案1

專案2定義 a

定義 b

專案3定義 c

定義 d

定義d內容

**塊語法遵循標準markdown**,例如:

@requires_authorization

defsomefunc

(param1='', param2=0):

'''a docstring'''

if param1 > param2: # interesting

print

'greater'

return (param2 - param1 + 1) or

none

class

someclass:

pass

>>> message = '''interpreter

... prompt'''

生成乙個腳注1.

[toc]來生成目錄:

離線寫部落格

瀏覽器相容

使用mathjax渲染latex 數學公式,詳見math.stackexchange.com. x

=−b±

b2−4

ac‾‾

‾‾‾‾

‾‾√2

a 更多latex語法請參考 這兒.

可以渲染序列圖:

或者流程圖:

即使使用者在沒有網路的情況下,也可以通過本編輯器離線寫部落格(直接在曾經使用過的瀏覽器中輸入write.blog.csdn.net/mdeditor即可。markdown編輯器使用瀏覽器離線儲存將內容儲存在本地。

使用者寫部落格的過程中,內容實時儲存在瀏覽器快取中,在使用者關閉瀏覽器或者其它異常情況下,內容不會丟失。使用者再次開啟瀏覽器時,會顯示上次使用者正在編輯的沒有發表的內容。

部落格發表後,本地快取將被刪除。 

使用者可以選擇 把正在寫的部落格儲存到伺服器草稿箱,即使換瀏覽器或者清除快取,內容也不會丟失。

注意:雖然瀏覽器儲存大部分時候都比較可靠,但為了您的資料安全,在聯網後,請務必及時發表或者儲存到伺服器草稿箱

ie9以下不支援

ie9,10,11存在以下問題

不支援離線功能

ie9不支援檔案匯入匯出

ie10不支援拖拽檔案匯入

這裡是腳注的 內容. ↩

FutureTask原始碼閱讀與理解

futuretask原始碼閱讀與理解 簡述 futuretask實現了runnable和future介面,代表此類可以被執行緒池排程和非同步執行任務。幾個變數 以下是state的幾種狀態 private volatile int state private static final int new ...

FutureTask原始碼分析

futuretask實現了runnablefuture,runnablefuture繼承了runnable和future介面。future介面和實現future介面的futuretask類,代表非同步計算的結果。所以futuretask既能當做乙個runnable直接被thread執行,也能作為fu...

FutureTask原始碼分析

private volatile int state 任務狀態 private static final int new 0 private static final int completing 1 private static final int normal 2 private static ...