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

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

Java EE 7におけるConcurrency Utilitiesの改良点

 さて、以上がJava SE 5で導入されたConcurrency Utilitiesの基本的な仕組みであるが、Java EE(J2EE)においてもマルチスレッドへの対応は進められてきた。J2EE 1.2でJMS(Java Message Service)が、J2EE 1.3でMDB(Message-Driven Bean)がスレッドをサポートし、Java EE 6では非同期Servletと非同期EJBのサポートが追加されている。

J2EEとJava EEにおける非同期処理の歴史

 では、今回の講演の主題であるConcurrency Utilities for Java EEは、どのあたりにインパクトがあるのだろうか。この点について寺田氏は次のように説明する。

 「Java EE 6でもさまざまなコアライブラリで簡単にスレッドが利用できるようになっていますが、それらは単なる“非同期処理”(処理の終了を待たずに次の処理に移る)であり、“並列処理”(複数の処理を同時に実行する)ではありません」

 すなわち、Concurrency Utilities for Java EEを使うことで、Java EE環境でも真の並列処理によるパフォーマンスの向上が得られるようになるわけだ。

 それでは、Concurrency Utilities for Java EEでは、Java SEのConcurrency Utilitiesに対してどのような点が強化されたのだろうか。ご存知の方も多いだろうが、Java EEはJava SEの上に構築されているため、Java EEのアプリケーションからJava SEの機能を利用することも不可能ではない。しかし、Java EE 6においては、非同期化した処理の中からスレッドを生成するのは禁止されていたという。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]