在Stream 的java doc一直反复强调Stream用在并行计算时所体现出的优势;下面时并行计算所体现出的前提, 满足归一性(能够在操作集合中找到一个元素,使得其他元素在与其自身操作得到的结果为其它元素自身,比如 在支持加法运算的自然数集合中的 1, 支持乘法运算的自然数集合中的 0) 和 结合律;
To ensure that sequential and parallel executions produce equivalent results, the collector functions must satisfy an identity and an associativity constraints.
似乎还有不必要的条件,就是是否满足交换律(即commutative); Stream操作中的的unordered or sorted似乎就是在向Stream申明是否满足交换律;如果允许unordered, 并行计算的性能可以获得进一步的提升;
并行计算本身时个很大的话题, 它的核心思想就是 split & merge; 很多经典算法都是可以并行化,以进一步压榨计算机的性能比如图论的很多算法,比如KMP算法等; 也有很多并行计算的框架可以采用;目前并不怎么了解,日后有空可以看一下;