У меня есть следующая функция:
with ProcessPoolExecutor(max_workers=None) as executor:
futures = [executor.submit(execute, row) for row in fetch_row()]
for future in as_completed(futures):
# do something
Согласно моему пониманию futures
должно заполняться асинхронно, пока цикл for выполняет фьючерсы по мере их появления.
Я написал оператор печати прямо перед return
в execute
, чтобы убедиться, что функция действительно должна вернуться.
Кажется, что функция действительно отправляет задания параллельно, и они возвращаются, но цикл for не выполняет как задания возвращаются из соответствующего процесса, но только после того, как список полностью встроенный.
Я бы хотел выполнить for в то же время, когда поступает фьючерс.
fetch_row()
- генератор, который только читает из файла CSV.