private void
    checkRegionConsistencyConcurrently(final List<CheckRegionConsistencyWorkItem> workItems)
      throws IOException, KeeperException, InterruptedException {
    if (workItems.isEmpty()) {
      return; // nothing to check
    }

    List<Future<Void>> workFutures = executor.invokeAll(workItems);
    for (Future<Void> f : workFutures) {
      try {
        f.get();
      } catch (ExecutionException e1) {
        LOG.warn("Could not check region consistency ", e1.getCause());
        if (e1.getCause() instanceof IOException) {
          throw (IOException) e1.getCause();
        } else if (e1.getCause() instanceof KeeperException) {
          throw (KeeperException) e1.getCause();
        } else if (e1.getCause() instanceof InterruptedException) {
          throw (InterruptedException) e1.getCause();
        } else {
          throw new IOException(e1.getCause());
        }
      }
    }
  }
Check consistency of all regions using multiple threads concurrently.
hbase-server/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java