程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JDK 7全新升級 面向細顆粒並行化

JDK 7全新升級 面向細顆粒並行化

編輯:關於JAVA

作為最主流的編程語言之一,Java的開發團隊不可能不了解多核芯片革命的重要性,因此他們正在努力工作,針對新的多核處理器可能帶來的性能特性提供新的並行框架。現在我們知道,JDK 7(Java Development Kit,Java開發工具包)將提供新的fork-join框架,以幫助Java開發者能夠繼續使用Java在多核戰爭中贏取他們的陣地。

  我想,如果在這裡引用一下達爾文的“物種起源”和他在進化論中的觀點再合適不過了:“真實的情況是,大自然選擇了最適合的品種,優勝劣汰,適者生存,這一過程被稱為物競天擇。”

  我敢肯定,為了在並行化的年代生存,開發者一定會選擇最適合多核開發的編程語言,這一過程也該被稱為物競天擇。不能夠自我發展以支持多核編程的開發語言將是不會有機會生存在這個新時代的。幸運的是,我們看到JDK 7已針對並行化提供了諸多改進,它能夠誘惑足夠的多核程序員成為它的擁趸。

  Java從第一個版本開始就支持多線程。然而,在Java誕生時,多核處理器還遠遠沒有問世。因此,舊的Java線程模型並沒有在這方面做過多考慮。舊模式在只有一個處理核心時能夠創建響應性更強的應用,表現可以說非常優秀,但它確實沒有為高並發級別做好准備。如今的多核心編程需要許多並行任務共同運行,充分利用所有可用的核心,而在這種情況下舊模式顯然已經落後了。

  為此,JDK 5中加入了對粗顆粒並發的框架支持,使新模式能夠適合於多處理器系統。而JDK 7中將進一步添加對細顆粒並行的支持,使用新的fork-join框架,給開發者提供了深入多核微處理器的可能性。

  可以肯定地說,在多核革命中,Java將不斷的進化以謀求生存。

  新的框架提供了根據任務工作的可能性,而並不需使用過多的線程。例如,在新提供的Java.util.concurrent.forkjoin包中,JDK 7將提供以下有用的基類:

  ◆RecursiveAction:代表divide-and-conquer解決方法類

  ◆RecursiveTask:代表result-bearing任務

  ◆AsyncAction:與需要異步完成的任務協同工作

  ◆CyclicAction:與並行迭代任務協同工作

  新的fork-join任務的設計目的為將工作量最小化,並提高計算密集型任務的性能。此外,比起舊版的線程編碼,代碼更加容易理解,開發者需要的同步時間會更少。

  對於在多核CPU上運行的計算密集型任務,新的fork-join框架將會非常有用。

  JDK 7還將提供許多其他功能,比如新的ParallelArray類等(請參考:Java 7新特性展望)。然而,我還是更想把重點放在新的fork-join框架上。

  Java正在不斷進化中,因此,作為Java開發者也必須不斷的提高自己,充分利用這些即將到來的功能。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved