Fork Join 1 概念與入門示例

2021-07-25 15:03:31 字數 1464 閱讀 2929

fork/join框架是jdk1.7引入的平行計算框架,核心概念:

1. 將大任務自動遞迴分解成小任務並行執行;

2. 工作竊取(work-stealing)演算法,空閒執行緒從另乙個任務佇列獲取任務並執行,避免計算資源閒置。

譬如,要生產10000個蛋糕,可以將其分解成100個任務,每次生產100個。工人1和工人2分別領取50個任務。假如工人1完成30個任務時,工人2已經完成了自己的任務佇列,那麼工人2會從工人1中獲取任務並執行。

/*** fork/join入門示例

*@authortony.lau

*/publicclassforkjoindemo

long

start

= system.

currenttimemillis

();forkjoinpool

pool

=newforkjoinpool();

task

task

=newtask(

list

, 0,

size

);pool

.execute(

task

);while

(!task

.isdone())

pool

.shutdown();if(

task

.iscompletednormally())

for(int

i= 0;

i<

size;i

++) }}

}/**

* 無返回值的任務繼承recursiveaction並重寫compute()方法

*@authortony.lau

*/classtaskextendsrecursiveaction

/** * 1.遞迴分解任務的結束條件

* 2.遞迴分解任務的分解方法

*/@override

protectedvoidcompute()else

}

private

voidmake()

}

}classcake

@override

public

string tostring()

}

演算法入門1 基本概念

演算法 顧名思義,一種計算的方法,在程式設計上,就表現為一組指令序列。為了使得演算法有意義,還規定演算法必須是有限的和確定的,也就是說演算法的執行時間有限 執行的過程是確定的。比如我們寫了 int a 10 a,b為輸入資料 int b 20 int c a b c為輸出資料,演算法為加法運算 這其...

區塊鏈入門學習(1) 概念

鏈客,有問必答!區塊鏈 blockchain 是近年來的大熱門,最近開始學習區塊鏈,以及主流平台以太坊的一些內容,不得不說對於小白而言,內容概念確實多,且雜。以此記來梳理一下知識點,分享一下經驗內容。一 區塊鏈的實質 區塊鏈,第一反映聯想到前段日子瘋漲的位元幣。沒錯,位元幣是依賴於區塊鏈底層框架,是...

機器學習入門基礎概念(1)

時隔兩年半,再次上我這個csdn賬號。最近正好複習機器學習考試,就把一些基本的機器學習概念在部落格記錄一下,就當複習了。一些概念 什麼是機器學習 1.什麼是機器學習?機器學習就是計算機基於資料建立概率統計模型,並運用模型對資料進行 與分析的一門學科。2.期望風險 經驗風險與結構風險 期望風險可以看為...