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. * * code derrived from: http://gpars.codehaus.org/Actor */ def decryptor = actor { loop { react {message -> Thread.sleep(1000); if (!(message instanceof String)) { stop() return } reply message.reverse() } } } def console = actor { List strs = ['abc','zyx','Vvv',false]; int i = -1 loop { if (!strs[++i]) stop() decryptor << strs[i] println "Sent: ${strs[i]}" react {msg -> println "Decrypted msg: $msg" } } } [decryptor, console]*.join()
Wednesday, May 28, 2014
GPars Actors
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment