Предположим, у меня есть генератор, чья функция __next__()
несколько дорогая, и я хочу попробовать распараллелить вызовы. Куда мне добавить парализатор?
Чтобы быть более конкретным, рассмотрим пример:
# fast, splitting a file for example
raw_blocks = (b for b in block_generator(fin))
# slow, reading blocks, checking values ...
parsed_blocks = (block_parser(b) for b in raw_blocks)
# get all parsed blocks into a data structure
data = parsedBlocksToOrderedDict(parsed_blocks)
Самое основное - это изменить вторую строку на что-то, что выполняет распараллеливание Есть ли какая-то магия генератора, которая позволяет распаковать линию генератора (на 3-й) параллельно? Вызов __next__()
параллельно?