public static <T> MultipleStreamSource<T> ofMultiple(final int backPressureAfter) {
        return new MultipleStreamSource<T>(
                                           StreamSource.of(backPressureAfter)
                                                       .createQueue());
    }
public static < T > MultipleStreamSource < T > ofMultiple ( final int backPressureAfter ) { return new MultipleStreamSource < T > ( StreamSource . of ( backPressureAfter ) . createQueue ( ) ) ; }
Connect multiple Streams to a Pushable datasource, each Stream will recieve the same
data. In this backpresure is applied by using a LinkedBlockingQueue. @see cyclops2.stream.StreamSource#ofMultiple(QueueFactory)
For more granular management of Adapter based backpressure. Adapters can be backed by non-blocking data structures and different backpressure strategies applied
<pre>
{@code


MultipleStreamSource<Integer> multi = StreamSource.ofMultiple(2);
multi.getInput()
.offer(100);

example on separate threads

thread 1
LazyFutureStream<Integer> futureStream = multi.futureStream(new LazyReact());
futureStream.map(this::slowProcess)
.forEach(System.out::println);

print 100

thread 2
ReactiveSeq<Integer> seq = multi.reactiveSeq();
seq.forEach(System.out::println);

print 100

thread 3
Stream<Integer> stream = multi.stream();
stream.forEach(System.out::println);

print 100

multi.getInput()
.offer(200);

thread 1
print 200

thread 2
print 200

thread 3
print 200

multi.getInput()
.offer(300);
multi.getInput()
.offer(400);
multi.getInput()
.offer(500);    //blocked as backpressure applied
multi.getInput()
.close();


}
</pre>
@param backPressureAfter Excess number of emitted records over consumed (by all connected Streams
after which backPressure will be applied).
@return a builder that will use Topics to allow multiple Streams from the same data