multiprocessing imap_unordered в python

Я делаю программу, которая читает несколько файлов и записывает сводку каждого файла в выходной файл. Размер выходного файла довольно велик, поэтому хранить его в памяти - не лучшая идея. Я пытаюсь разработать многопроцессорный способ сделать это. До сих пор я мог найти самый простой способ:

pool = Pool(processes=4)
it = pool.imap_unordered(do, glob.iglob(aglob))
for summary in it:
    writer.writerows(summary)

do - это функция, которая обобщает файл. Writer - это объект csv.writer

Но правда в том, что я до сих пор не совсем понимаю multiprocessing.imap. Означает ли это, что 4 сводки рассчитываются параллельно и что когда я читаю одно из них, начинает вычисляться 5-е?

Есть ли лучший способ сделать это?

Спасибо.

6
задан Hernan 10 June 2011 в 05:19
поделиться