2016-09-30 2 views
0

병렬 스트림을 조사하면서 중간/터미널 작업이 스트림 멤버의 정렬 된/정렬되지 않은 처리에 미치는 영향에 대한 좋은 요약을 찾는 데 문제가있었습니다 , 명백하게 평행 한 경우에. 의 라인에 뭔가 :Sequential vs Parallel streams - 중간 및 터미널 작업에 의해 도입 된 순서 변경

InputCollection -> intermediate op effect -> terminal op effect -> result order. 

처럼 좋은 요약/테이블이나 내가 놓친 거지 일반적인 규칙이 있나요

Set (unord) -> peek(no change) -> flatMap(ord/sequentialStrm) -> forEach(unord) 

(그냥 무작위 추측은, 그것의 정확성을 가정하지 않는다). 분명히 하나씩 테스트 할 수는 있지만 병렬 처리의 임의 결과에 따라 생산성이 떨어지는 것으로 느껴집니다.

관련 질문을 확인했지만 그들은 항상 특별한 경우에 대해 논의하고 있지만 일반적으로 논의하지는 않습니다.

+0

당신의 예 목표로 무엇 분명하지 않다. 소스가 이미 순서가 지정되어 있지 않으면 보존 할 순서가 없습니다. 그 외에도 효과는 [문서화 됨] (http://docs.oracle.com/javase/8/docs/api/?java/util/stream/Stream.html) 또는 자체 설명 적입니다. – Holger

답변