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