Llamar al mapa en una colección paralela a través de una referencia a un tipo de antepasado
Traté de hacerlo opcional para ejecutar unmap
Operación secuencial o en paralelo, por ejemplo utilizando el siguiente código:
val runParallel = true
val theList = List(1,2,3,4,5)
(if(runParallel) theList.par else theList) map println //Doesn't run in parallel
Lo que noté es que la operación de 'mapa' no se ejecuta en paralelo como esperaba. Aunque sin el condicional, sería:
theList.par map println //Runs in parallel as visible in the output
El tipo de expresión.(if(runParallel) theList else theList.par)
que espero que sea el antepasado común más cercano de ambos tipos detheList
ytheList.par
Es un tipo de miedo que no pegaré aquí, pero es interesante de ver (a través de la consola Scala :)
:type (if(true) theList else theList.par)
¿Por qué nomap
¿En la colección paralela trabajan en paralelo?
ACTUALIZACIÓN: Esto se discute enSI-4843 pero del boleto de JIRA no está claro por qué sucedió esto en Scala 2.9.x.