Я смотрел новые Scala 2.9 параллельные коллекции, и я надеялся отказаться от многих моих крутых любительских версий подобных вещей. В частности, я бы хотел заменить пул объединений fork, который лежит в основе реализации по умолчанию с чем-то моим (например, что-то, что распределяет оценку задач через сеть, через участников). Я понимаю, что это просто вопрос применения парадигмы Scala "стекируемых модификаций", но библиотека коллекций достаточно запугана, что я не совсем уверен, какие биты нужно модифицировать!
Некоторые конкретные вопросы:
- Правильно ли, что стандартные параллельные реализации взаимодействуют с пулом соединений fork только через код в
ForkJoinTasks
? - Я вижу, что есть альтернативный признак,
FutureThreadPoolTasks
. Как мне создать коллекцию, которая использует эту черту вместоForkJoinTasks
? - Можно ли написать еще одну альтернативу (и, возможно, соответствующий класс шаблонов, который смешивается в
AdaptiveWorkStealingTasks
и каким-то образом создает экземпляры коллекций, которые используют этот новый признак?
(Для справки, все признаки, упомянутые выше, определены в Tasks.scala.)
Особенно примеры кода очень приветствуются!