public class RandomTester { private static class RunTest implements Runnable { int i; int[] resTimes; volatile static int using=0; volatile static int waiting=0; volatile static long startTime=0; public RunTest(int i) { this.i=i; } private void sleepUntil(long millis) { long t; while((t = millis-time()) > 0) mySleep(t); } private void mySleep(long millis) { try {Thread.sleep(millis);} catch (InterruptedException ie) {}; } private long time() {return System.currentTimeMillis()-startTime;} private void printEvent(String desc) { String header = " At " + time() + "ms\t "; for(int j=0; j