code: @SuppressWarnings("JavaDoc")
      public static <T, BT extends Procedure<? super T>> void forEach(
              Iterable<T> iterable,
              ProcedureFactory<BT> procedureFactory,
              Combiner<BT> combiner,
              int minForkSize,
              int taskCount)
      {
          ParallelIterate.forEach(iterable, procedureFactory, combiner, minForkSize, taskCount, ParallelIterate.EXECUTOR_SERVICE);
      }
docs: Iterate over the collection specified in parallel batches using the default values for the task size.  The
  ProcedureFactory can create stateful closures that will be collected and combined using the specified Combiner.
  <p>
  <pre>e.g. The <b>ParallelIterate.select()</b> implementation
  <p>
  int taskCount = Math.max(DEFAULT_PARALLEL_TASK_COUNT, collection.size() / DEFAULT_MIN_FORK_SIZE);
  final int taskSize = collection.size() / taskCount / 2;
  {@code CollectionCombiner<T, SelectProcedure<T>> combiner = CollectionCombiner.forSelect(collection);}
  ParallelIterate.<b>forEach</b>(collection,{@code new SelectProcedureFactory<T>(predicate, taskSize), combiner, DEFAULT_MIN_FORK_SIZE, taskCount);}
  </pre>