public final Stream<T> filter(final Predicate<? super T> predicate, final int parallelism) {
        synchronized (this.state) {
            checkState();
            return new FilterStream<T>(this, parallelism, predicate);
        }
    }
public final Stream < T > filter ( final Predicate < ? super T > predicate , final int parallelism ) { synchronized ( this . state ) { checkState ( ) ; return new FilterStream < T > ( this , parallelism , predicate ) ; } }
Intermediate operation returning a Stream with only the elements of this Stream that
satisfy the specified predicate. If {@code parallelism > 1}, up to {@code parallelism}
evaluations of the predicate are simultaneously performed in background threads for greater
throughput.

@param predicate
the predicate, never called with a null input
@param parallelism
the parallelism degree, i.e., the maximum number of predicate evaluations that
can be performed in parallel (if <= 1 no parallel evaluation will be performed)
@return a Stream over the elements satisfying the predicate