He estado mirando las nuevas colecciones paralelas de Scala 2.9 y espero abandonar muchas de mis versiones de aficionados similares de cosas similares. En particular, me gustaría reemplazar el grupo de unión fork que subyace a la implementación predeterminada con algo propio (por ejemplo, algo que distribuye la evaluación de tareas a través de una red, a través de actores). Tengo entendido que esto es simplemente una cuestión de aplicar el paradigma de Scala de "modificaciones apilables", pero la biblioteca de colecciones es lo suficientemente intimidante como para no estar seguro de qué partes necesitan modificarse.¿Cómo reemplazo el grupo de unión de horquilla para una colección paralela Scala 2.9?
Algunas preguntas concretas:
- ¿Es cierto que las implementaciones paralelas estándar interactúan con el tenedor unirse a la piscina exclusivamente a través del código en
ForkJoinTasks
? - Veo que hay un rasgo alternativo,
FutureThreadPoolTasks
. ¿Cómo construiría una colección que use esta característica en lugar deForkJoinTasks
? - Puedo escribir otra alternativa (y tal vez una clase reutilizable correspondiente que mezcla en
AdaptiveWorkStealingTasks
y de alguna manera una instancia colecciones casos que utilizan este nuevo rasgo?
(Como referencia, todos los rasgos mencionados anteriormente se definen . en Tasks.scala)
Especialmente ejemplos de código son muy bienvenidos
Confirmado: en la versión 2.9.0 no está destinado a ser anulado, aunque se está considerando cómo permitirlo en una versión futura. – axel22
Gracias por esto, @oxbow_lakes. Es curioso que 'FutureThreadPoolTasks' parezca huérfano. @ axel22, ¿me puede indicar a qué lista de correo (si corresponde) se ha debatido? –
¿Qué hay de cambiar este valor utilizando la reflexión? – ziggystar