Archive for 2013年5月15日
Concurrency Utilities for EE 7
本日は、Java Day Tokyo に非常に多くの Java 開発者の皆様にお集まりいただきまして誠にありがとうございました。本日私が C-4 のセッション「エンタープライズ環境における並列処理の実装方法について」で説明した資料に参考メモを付加した、参照用のバージョンを下記に公開します。
また併せて説明時に使用したデモ(CPU 256 個の環境で Java を並列処理実行させた際のデモンストレーション)動画も下記に公開します。下記のデモは内部的に単なる Σ 計算を行なっているだけなのですが、デモ動画をご覧いただくとわかるのですが、単なる逐次処理、JDK 1.0 からある昔ながらの Thread 生成方法、Concurrency Utilities を利用した場合で、どの位 CPU リソースの利用状況が変わるかを視覚的にご覧いただけるかと思います。
※ 昔 Java は遅いと言われた時代がありましたが、今の Java を未だに遅いとか言っている方は正直勉強不足ではないかと思います。本デモのように、Java VM(実行環境)は非常にハイ・パフォーマンスで、ハイ・スケーラブルな実行環境です。現実的には、256 個の CPU を使い切る場面はないかと思いますが、Java はこのように適切にプログラミングを行うと、必要に応じて CPU を全て使い切る事もできる素晴らしい実行環境です。
Concurrency Utilities for Java EE は、
今まで Servlet コンテナ(AKA Web コンテナ)、EJB コンテナで禁止されていた、スレッド生成を、安全に EE 環境にも適用できる物です。単なる非同期と並列処理の違いをご理解頂き、バックグラウンドで非同期かつ並列に実行したい複数のタスクがある場合には、このAPI はとても有用です。
今回、発表時に使用したデモの全てのソースコードを下記に公開していますので、Asyn Servlet, Async EJB, JMS&MDB を含む非同期処理、さらには非同期並列処理にご興味ある方はどうぞご参照いただければ幸いです。中には WebSocket と Concurrency の連携デモのソースコードも含まれます。
是非、ご参照頂ければ幸いです。