code: public static <K, V, R extends MutableMultimap<K, V>> MutableMultimap<K, V> groupBy(
              Iterable<V> iterable,
              Function<? super V, ? extends K> function,
              R concurrentMultimap,
              int batchSize,
              ForkJoinPool executor)
      {
          FJIterate.forEach(
                  iterable,
                  new PassThruProcedureFactory<Procedure<V>>(new MultimapPutProcedure<>(concurrentMultimap, function)),
                  Combiners.<Procedure<V>>passThru(),
                  batchSize,
                  executor);
          return concurrentMultimap;
      }
docs: Same effect as {@link Iterate#groupBy(Iterable, Function)},
  but executed in parallel batches, and writing output into a SynchronizedPutFastListMultimap.