1. 程式人生 > >Java Fork Join框架 (二) 簡介

Java Fork Join框架 (二) 簡介

作者:Doug Lea
譯者:Alex

Fork/Join並行方式是獲取良好的平行計算效能的一種最簡單同時也是最有效的設計技術。Fork/Join並行演算法是我們所熟悉的分治演算法的並行版本,典型的用法如下:

Result solve(Problem problem) {
	if (problem is small) 
		directly solve problem
		else {
			split problem into independent parts
			fork new subtasks to solve each part
			join all subtasks
			compose result from subresults
		}
}

Fork操作將會啟動一個新的並行fork/join子任務。Join操作會一直等待直到所有的子任務都結束。Fork/Join演算法,如同其他分治演算法一樣,總是會遞迴的、反覆的劃分子任務,直到這些子任務可以用足夠簡單的、短小的順序方法來執行。

一些相關的程式設計技術和例項在Java併發程式設計——設計原則與模式 第二版 [7] 4.4章節中已經討論過。這篇論文將討論FJTask的設計(第2節)、實現(第3節)以及效能(第4節),它是一個支援並行程式設計方式的Java框架。FJTask 作為util.concurrent軟體包的一部分,目前可以在http://gee.cs.oswego.edu.獲取到。