static <T extends MultiThreadedTest.TestThread>void runTestThreads(List<T> threads){
  long startTime=System.nanoTime() + 200000000L;
  for (  T thread : threads) {
    if (thread.startTime == 0) {
      thread.startTime=startTime;
    }
    thread.start();
  }
  for (  T thread : threads) {
    try {
      thread.join();
    }
 catch (    InterruptedException e) {
      throw new RuntimeException(e);
    }
    if (thread.cause != null) {
      throw new RuntimeException(thread.cause);
    }
  }
}

static < T extends MultiThreadedTest . TestThread > void runTestThreads ( List < T > threads ) { long startTime = System . nanoTime ( ) + 200000000L ; for ( T thread : threads ) { if ( thread . startTime == 0 ) { thread . startTime = startTime ; } thread . start ( ) ; } for ( T thread : threads ) { try { thread . join ( ) ; } catch ( InterruptedException e ) { throw new RuntimeException ( e ) ; } if ( thread . cause != null ) { throw new RuntimeException ( thread . cause ) ; } } }
runs list of test threads .
