code: public static <T, PT extends Procedure<? super T>> void forEach(
              Iterable<T> iterable,
              PT procedure,
              ForkJoinPool executor)
      {
          PassThruProcedureFactory<PT> procedureFactory = new PassThruProcedureFactory<>(procedure);
          PassThruCombiner<PT> combiner = new PassThruCombiner<>();
          FJIterate.forEach(iterable, procedureFactory, combiner, executor);
      }
docs: Iterate over the collection specified in parallel batches using default runtime parameter values
  and the specified executor.
  The {@code Procedure} used must be stateless, or use concurrent aware objects if they are to be shared.
  
  @param executor Use this executor for all execution.
  @see #forEach(Iterable, Procedure)