Вызов карты в параллельной коллекции через ссылку на тип предка
Я пытался сделать необязательным запускmap
работать последовательно или параллельно, например, используя следующий код:
val runParallel = true
val theList = List(1,2,3,4,5)
(if(runParallel) theList.par else theList) map println //Doesn't run in parallel
Я заметил, чтокарта' операция не работает параллельно, как яЯ ожидал. Хотя без условного было бы:
theList.par map println //Runs in parallel as visible in the output
Тип выражения(if(runParallel) theList else theList.par)
который я ожидаю быть ближайшим общим предком обоих типовtheList
а такжеtheList.par
это страшный тип, который я выигралвставить здесь, но этоИнтересно посмотреть (через консоль Scala :)
:type (if(true) theList else theList.par)
Почему неттmap
на параллельной коллекции работать параллельно?
ОБНОВЛЕНИЕ: это обсуждено вSI-4843 но из билета JIRA это 'Непонятно, почему это происходило на Scala 2.9.x.