Ответ 1
Да, но сама функция выполняется без какого-либо определенного порядка.
List(1,2,3).par foreach print // could print out 213
Если у меня есть это:
val a = Array(...)
и я пишу
a.par.map(e => someFunc(e))
Будет ли полученная коллекция быть в том же порядке, что и непараллельный набор?
Да, но сама функция выполняется без какого-либо определенного порядка.
List(1,2,3).par foreach print // could print out 213
Параллельные коллекции сохраняют все контракты своих непараллельных эквивалентов.
В коллекциях, в которых операция a map
сохраняет порядок, например List
, порядок будет сохранен также параллельным map
. В коллекциях, в которых map
не сохраняет порядок, например Set
, порядок не сохраняется в параллельной версии.
С неупорядоченными коллекциями нет гарантии, что результат параллельной операции даже будет иметь тот же порядок обхода, что и его непараллельный эквивалент.