package edu.rice.comp322; import edu.rice.hj.runtime.actors.Actor; import static edu.rice.hj.Module0.finish; import static edu.rice.hj.Module0.launchHabaneroApp; /** *
ThreadRingMain class.
* * @author Shams Imam (shams@rice.edu) Created: Mar/08/12 8:29 PM */ public class Lec29Slide2ThreadRing { /** *main.
* * @param args an array of {@link String} objects. */ public static void main(final String[] args) { final int numThreads = 4; final int numberOfHops = 10; launchHabaneroApp(() -> { final ThreadRingActor[] ring = new ThreadRingActor[numThreads]; finish(() -> { for (int i = numThreads - 1; i >= 0; i--) { ring[i] = new ThreadRingActor(i); ring[i].start(); if (i < numThreads - 1) { ring[i].nextActor(ring[i + 1]); } } ring[numThreads - 1].nextActor(ring[0]); ring[0].send(numberOfHops); }); System.out.println("Thread ring actors terminated."); }); } private static class ThreadRingActor extends Actor