2012年7月7日土曜日

JGGUG G*ワークショップ行ってきた

咳が止まりません。

みけです。

JGGUG G*ワークショップ行ってきました。

ちなみにtogetterとかはこちらにあります。

Rod JohnsonがSpring Sourceを卒業したそうです。

ソース1

ソース2

CSPとは?


今回の目玉はCommunicating Sequential Processes(CSP)です。

Occamなどの言語はCSPの思想から作られているそうです。

ちなみにOcamlではありません。

言語的にはErlangに近いそうです。

なお、日本語の解説ページがあります。

こちらを参照して下さい。


JCSP


CSPモデルをJavaで実装したのが、JCSPです。

jarファイルはMavenおよびGradleから取得可能なようです。

下記を参考にして下さい。

pom.xml



build.gradle




サンプルコード


まあ、僕は文章を書くのが(文卒のくせに)苦手なので、

早速サンプルコードを書いてみました。

(正確にはコピペです。)




で、実行結果がコレ。




ログの出力の仕方からわかるのは、Parallelの通信が

出力→入力で一対一になっているところですね。

ChannelQueueのような溜め込むという

操作を提供はしていないようです。

(まあ、そういうChannelもあるかもしれませんが…)

スレッドの遅い方(Readクラス)の速度に合わせて、

通信が行われているあたりが特徴的だと思います。


Groovy


Groovyで実行する場合は、Parallelクラスが

PARというgparsにあるラッパークラスに置き換わる

ところです。




結論


java.util.concurrentパッケージにあるクラスを

用いて、同様の処理を書くことができると思いますが、

それに比べると結構簡単に並列処理が書けそうです。

ちょっと面白そうなので、もう少しいじってみたいと思います。




0 件のコメント:

コメントを投稿