読者です 読者をやめる 読者になる 読者になる

糸電話式のアレ

プログラミングのこと。毎日のこと。書いています。

GPARSの練習。

Groovy GPARS

Groovyの並行処理ライブラリであるGPARSを練習してみることにした。

とりあえず、何も考えずにユーサーズガイドの最初のコードを写経します。

import static groovyx.gpars.actor.Actors.actor
/**
 * A demo showing two cooperating actors. The decryptor decrypts received messages and replies them back.
 * The console actor sends a message to decrypt, prints out the reply and terminates both actors.
 * The main thread waits on both actors to finish using the join() method to prevent premature exit,
 * since both actors use the default actor group,  which uses a daemon thread pool.
 * @author Dierk Koenig, Vaclav Pech
 */

def decryptor = actor {
    loop {
        react {message ->
            if (message instanceof String) reply message.reverse()
            else stop()
        }
    }
}

def console = actor {
    decryptor.send 'lellarap si yvoorG'
    react {
        println 'Decrypted message: ' + it
        decryptor.send false
    }
}

[decryptor, console]*.join()

出力結果は、
Groovy is parallel
なるほど。。。

本当かな?と思ったので、試してみる。

出力結果は、

c:0
c:1
d:1
d:2
d:3
c:2
##イカ略でゲソ##

なるほど、並行っぽい。

今日はこのへんにしといてやろう。