ExSyncChannel


code

pworkers = 10;
cworkers = 10;
count = 10;
res = 0;

SyncChannel chan;

con i = 1 to pworkers do
  Producuer(i);
end

con i = 1 to cworkers do
  Consumer(i);
end

Producer(i) {
  for i = 1 to count do
    write i to chan;
  end
}

Consumer(i) {
  s = 0;
  for i = 1 to count do
    read val from chan;
    s += val;
  end

  atomic res += s; end
}

java source code