code: public static <T> int count(Iterable<T> iterable, Predicate<? super T> predicate, int batchSize, ForkJoinPool executor)
      {
          CountCombiner<T> combiner = new CountCombiner<>();
          CountProcedureFactory<T> procedureFactory = new CountProcedureFactory<>(predicate);
          FJIterate.forEach(iterable, procedureFactory, combiner, batchSize, executor);
          return combiner.getCount();
      }
docs: Same effect as {@link Iterate#count(Iterable, Predicate)}, but executed in parallel batches.
  
  @return The number of elements which satisfy the Predicate.