public void executeInParallel() {
    for (ConcurrentOperation op : toInvoke) {
      futures.add(threadPool.submit(op));
    }
    allThreadsExecuted.set(true);

    awaitFutures();
    errorCollector.verify();
  }
Runs all callables in the rule in parallel and fails if threads' conditions were not met. Each
thread runs until timeout has been reached. This method will not return until all
threads have completed or been cancelled.

@throws RuntimeException with cause of MultipleFailureException with a list of failures
        including AssertionErrors for all threads whose expectations were not met (if there are
        multiple failures).
@throws AssertionError if a single thread's expectations are not met
geode-junit/src/main/java/org/apache/geode/test/junit/rules/ConcurrencyRule.java