reactor-core/src/main/java/reactor/core/publisher/ParallelFlux.java
public static <T> ParallelFlux<T> from(Publisher<? extends T> source,
			int parallelism,
			int prefetch,
			Supplier<Queue<T>> queueSupplier) {
		Objects.requireNonNull(queueSupplier, "queueSupplier");
		Objects.requireNonNull(source, "source");

		return onAssembly(new ParallelSource<>(source,
				parallelism,
				prefetch, queueSupplier));
	}
public static <T> ParallelFlux<T> from(Publisher<? extends T> source,
			int parallelism,
			int prefetch,
			Supplier<Queue<T>> queueSupplier) {
		Objects.requireNonNull(queueSupplier, "queueSupplier");
		Objects.requireNonNull(source, "source");

		return onAssembly(new ParallelSource<>(source,
				parallelism,
				prefetch, queueSupplier));
	}
public static < T > ParallelFlux < T > from ( Publisher < ? extends T > source , int parallelism , int prefetch , Supplier < Queue < T > > queueSupplier ) { Objects . requireNonNull ( queueSupplier , "queueSupplier" ) ; Objects . requireNonNull ( source , "source" ) ; return onAssembly ( new ParallelSource <> ( source , parallelism , prefetch , queueSupplier ) ) ; }
Take a Publisher and prepare to consume it on {@code parallelism} number of 'rails'
and in a round-robin fashion and use custom prefetch amount and queue
for dealing with the source Publisher's values.

@param <T> the value type
@param source the source Publisher
@param parallelism the number of parallel rails
@param prefetch the number of values to prefetch from the source
@param queueSupplier the queue structure supplier to hold the prefetched values
from the source until there is a rail ready to process it.

@return the new {@link ParallelFlux} instance
Take a Publisher and prepare to consume it on { @code parallelism } number of rails and in a round - robin fashion and use custom prefetch amount and queue for dealing with the source Publisher s values .