Как я вижу, очевидный код при использовании Java 8 Stream s, будь то потоки "объекта" или примитивные потоки (т.е. IntStream и друзья), будет просто использовать:
someStreamableResource.stream().whatever()
Но тогда у многих "потоковых ресурсов" также есть .parallelStream().
Что неясно при чтении javadoc, является ли поток .stream() всегда последовательным, а потоки потока .parallelStream() всегда параллельны...
И тогда есть Spliterator, и в частности его .characteristics(), один из которых заключается в том, что он может быть CONCURRENT или даже IMMUTABLE.
Чувство моего чувства заключается в том, что на самом деле, независимо от того, является ли Stream или нет, параллельным по умолчанию или параллельным вообще, руководствуется его базовым Spliterator...
Я на правильном пути? Я прочитал и прочитал снова, javadocs, и до сих пор не могу найти четкого ответа на этот вопрос...