(快速参考)

GroovyCSP - Groovy 的 CSP 风格并发 API

import groovyx.gpars.csp.PAR
import org.jcsp.lang.CSProcess
import org.jcsp.lang.Channel
import org.jcsp.lang.ChannelOutput
import org.jcsp.lang.One2OneChannel
import groovyx.gpars.csp.plugAndPlay.GPrefix
import groovyx.gpars.csp.plugAndPlay.GPCopy
import groovyx.gpars.csp.plugAndPlay.GPairs
import groovyx.gpars.csp.plugAndPlay.GPrint

class FibonacciV2Process implements CSProcess {

ChannelOutput outChannel

void run() {

One2OneChannel a = Channel.createOne2One() One2OneChannel b = Channel.createOne2One() One2OneChannel c = Channel.createOne2One() One2OneChannel d = Channel.createOne2One()

def testList = [ new GPrefix(prefixValue: 0, inChannel: d.in(), outChannel: a.out()), new GPrefix(prefixValue: 1, inChannel: c.in(), outChannel: d.out()), new GPCopy(inChannel: a.in(), outChannel0: b.out(), outChannel1: outChannel), new GPairs(inChannel: b.in(), outChannel: c.out()), ] new PAR(testList).run() } }

One2OneChannel N2P = Channel.createOne2One()

def testList = [ new FibonacciV2Process(outChannel: N2P.out()), new GPrint(inChannel: N2P.in(), heading: "Fibonacci Numbers") ]

final def par = new PAR(testList) par.run()