package org.akka.essentials.stm.pingpong.example2;
import akka.actor.ActorSystem;
import scala.concurrent.stm.Ref;
import scala.concurrent.stm.japi.STM;
public class Game {
public static void main(String args[]) {
ActorSystem _system = ActorSystem.create("Agent-example");
Ref.View<String> turn = STM.newRef("");
PingPong table = new PingPong(turn);
Thread alice = new Thread(new Player("bob", table));
Thread bob = new Thread(new Player("alice", table));
alice.setName("alice");
bob.setName("bob");
alice.start(); // alice starts playing
bob.start(); // bob starts playing
try {
// Wait 5 seconds
Thread.sleep(5000);
} catch (InterruptedException e) {
}
table.hit("DONE"); // cause the players to quit their threads.
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
}
_system.shutdown();
}
}