マルチコア時代のCPUリソースを有効活用--Java EE 7で進化した並列処理を理解する

森英幸
2013-06-05 10:58:00
  • このエントリーをはてなブックマークに追加

 Javaはバージョン1からマルチスレッドに対応しているが、最初から用意されていた並列処理機能は、今となっては時代遅れの感は否めない。そうした状況の中、この6月にリリースされるJava EE 7では、新たな並列処理機能として「Concurrency Utilities for Java EE」が搭載された。

 ここでは、5月の「Java Day Tokyo 2013」で行われたセッション「エンタープライズ環境における並列処理の実装方法について」で語られた、この新しい並列処理機能について紹介する。

Java EEの並列処理を刷新するJSR-236

 Javaにおける新機能、特に言語仕様的な拡張は、まずJava SEに投入された後、エンタープライズ向けの改良を施してからJava EEに導入されるというのが典型的な流れになっている。


日本オラクル 製品事業統括 Fusion Middleware事業統括本部 Javaエバンジェリスト 寺田佳央氏

 Javaの並列処理機能も、この流れに沿っていて、Java SE 5で登場したConcurrency Utilities(JSR-166)が、この6月にリリースされるJava EE 7において、Concurrency Utilities for Java EE(JSR-236)として導入されることになった。

 セッションで、このConcurrency Utilities for Java EEについて講演したのは、日本オラクルでJavaエバンジェリストを務める寺田佳央氏だ。

 寺田氏は本題に入る前に、RunnableインターフェースとThreadクラスを用いた従来型のマルチスレッドコードの例を示し、「こんなコードを書くのは、もう止めましょう」と呼びかけた。

RunnableインタフェースとThreadクラスを用いたスレッドの実装例

 寺田氏はその理由を、次のように説明する。

  • 新着記事
  • 特集
  • ブログ