濃縮還元オレンジニュース

Java 7で登場するフォーク/ジョインを使って細粒度並列処理

Java 7にjava.util.concurrent.forkjoinパッケージとして導入予定のフォーク/ジョイン機構について解説した記事です。

Java 5より並行処理を容易に扱えるjava.util.concurrentパッケージが追加されましたが、Java 7にてより細かい粒度の並列処理を行えるフォーク/ジョインが簡単に扱えるようになります。フォーク/ジョインとは、大きな処理を複数のサブ処理に分割して並行的に処理し(フォーク)て各々の結果を合わせる(ジョイン)ことを表します。

記事では巨大な配列中から最大値を持つ要素を検索するという題材で、ForkJoinTasksをextendsしたRecursiveActionを利用して解説しています。フォーク/ジョインの実装はJava 6の環境にて取り込むことができるjsr166y.jarとして公開されていますので、実際に動かして試すことができます。

ちなみに、記事のサンプルコードでは2つのタスクをジョインするメソッドとしてcoInvoke( )が書かれていますが、現在はforkJoin( )に変更されています。

URLhttp://www.ibm.com/developerworks/jp/java/library/j-jtp11137.html

おすすめ記事

記事・ニュース一覧