/* Example program, to be used to compare it against a "shared object" parallel program */ import java.util.concurrent.Semaphore; import org.jcsp.lang.*; public class SimpleJCSP { public static void main(String[] args) { One2OneChannel chan = Channel.one2one(); new Parallel( new CSProcess[] { new Producer(chan.out()), new Consumer(chan.in()) }).run(); System.out.println("Driver finished"); } static class Producer implements CSProcess { private ChannelOutput out; public Producer(ChannelOutput myout) { out = myout; } public void run() { for (int i = 0; i < 10; i++) { out.write(new Integer(i)); } System.out.println("Producer finished"); } } static class Consumer implements CSProcess { private ChannelInput in; public Consumer(ChannelInput myin) { in = myin; } public void run() { for (int i = 0; i < 10; i++) { Integer d = (Integer) in.read(); System.out.println("Read: " + d.intValue()); } System.out.println("Consumer finished"); } } }