package org.distributeme.test.roundrobinwithfotonext.client; import net.anotheria.util.IdCodeGenerator; import net.anotheria.util.NumberUtils; import org.distributeme.core.ServiceLocator; import org.distributeme.test.roundrobinwithfotonext.RoundRobinService; import java.util.concurrent.CountDownLatch; public class PrintClientMT extends Client{ static int errors = 0 ; static int replies = 0; public static void main(String a[]) throws Exception{ final RoundRobinService service = ServiceLocator.getRemote(RoundRobinService.class); long start = System.currentTimeMillis(); int threads = 10; final int LIMIT = 10; final CountDownLatch ready = new CountDownLatch(threads); final CountDownLatch go = new CountDownLatch(1); final CountDownLatch finish = new CountDownLatch(threads); for (int t=0; t<threads; t++){ Thread thread = new Thread(new Runnable() { @Override public void run() { String name = IdCodeGenerator.generateCode(3); ready.countDown(); try { go.await(); }catch(InterruptedException e){} for (int i = 0; i<LIMIT; i++){ try{ service.print("Hello from "+name+" Nr. "+ NumberUtils.itoa(i, 3)); replies++; }catch(Exception e){ errors++; } } finish.countDown(); } }); thread.start(); } System.out.println("Ready for ready"); ready.await(); go.countDown(); finish.await(); long end = System.currentTimeMillis(); System.out.println("Tries "+LIMIT+", errors: "+errors+", replies: "+replies+", time: "+(end-start)+" ms"); //now print results service.printResults(); service.printResults(); service.printResults(); service.printResults(); } }