在Stream 的java doc一直反復(fù)強(qiáng)調(diào)Stream用在并行計(jì)算時(shí)所體現(xiàn)出的優(yōu)勢;下面時(shí)并行計(jì)算所體現(xiàn)出的前提, 滿足歸一性(能夠在操作集合中找到一個(gè)元素,使得其他元素在與其自身操作得到的結(jié)果為其它元素自身,比如 在支持加法運(yùn)算的自然數(shù)集合中的 1, 支持乘法運(yùn)算的自然數(shù)集合中的 0) 和 結(jié)合律;
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, 并行計(jì)算的性能可以獲得進(jìn)一步的提升;
并行計(jì)算本身時(shí)個(gè)很大的話題, 它的核心思想就是 split & merge; 很多經(jīng)典算法都是可以并行化,以進(jìn)一步壓榨計(jì)算機(jī)的性能比如圖論的很多算法,比如KMP算法等; 也有很多并行計(jì)算的框架可以采用;目前并不怎么了解,日后有空可以看一下;