Сначала я предполагал, что каждый класс коллекции получит дополнительный метод par
, который преобразует коллекцию в подходящую параллельную структуру данных (например, map
возвращает лучшую коллекцию для типа элемента в Scala 2.8).
Теперь кажется, что некоторые классы коллекций поддерживают метод par
(например, массив), но другие имеют методы toParSeq
, toParIterable
(например, список). Это немного странно, поскольку Array часто не используют или не рекомендуют.
В чем причина? Разве не лучше было бы просто иметь par
доступным для всех классов коллекций, делающих «правильные вещи»?
Если у меня есть данные, которые могут обрабатываться параллельно, какие типы мне следует использовать? Черты в scala.collection
или тип реализации напрямую?
Или я бы предпочел Arrays
сейчас, потому что они, кажется, дешевле распараллелить?