length google etiquetas ejemplos scala view parallel-collections

scala - google - meta title html



¿Se pueden usar vistas con colecciones paralelas? (1)

Consulte "Un marco genérico de colección paralela" , el artículo de Martin Odersky y otros que analiza las nuevas colecciones paralelas. La página 8 tiene una sección "Vistas paralelas" que habla sobre cómo la view y la par se pueden usar juntas, y cómo esto puede brindar los beneficios de rendimiento tanto de las vistas como de la computación paralela.

En cuanto a su ejemplo específico, ese es definitivamente un error. El método exists también se rompe, y tenerlo en una lista lo rompe para todas las demás listas, por lo que creo que es un problema donde las operaciones que pueden abortarse en parte ( find y exists pueden detenerse una vez que tienen una respuesta) logran romper el grupo de hilos de alguna manera. Podría estar relacionado con el error con excepciones lanzadas dentro de funciones pasadas a colecciones paralelas . Si es así, debería fijarse en 2.10.

El lenguaje para encontrar un resultado dentro de un mapeo de una colección es algo como esto:

list.view.map(f).find(p)

donde list es una List[A] , f es un A => B , y p es un B => Boolean .

¿Es posible utilizar la view con colecciones paralelas? Lo pregunto porque estoy obteniendo algunos resultados muy extraños:

Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0). Type in expressions to have them evaluated. Type :help for more information. scala> val f : Int => Int = i => {println(i); i + 10} f: Int => Int = <function1> scala> val list = (1 to 10).toList list: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) scala> list.par.view.map(f).find(_ > 5) 1 res0: Option[Int] = Some(11) scala> list.par.view.map(f).find(_ > 5) res1: Option[Int] = None