Хорошо, поэтому я никогда не использовал библиотеку многопроцессорности python, и я действительно не знаю, как записать мой поиск. Я прочитал документы для библиотеки, и я попытался найти примеры своей проблемы, и я ничего не смог найти.
У меня есть список имен файлов (~ 2400), словарь (называемый cond, и является глобальным) и функция. Я хочу запускать свою функцию на каждом процессоре, и каждый раз, когда функция работает, она использует одно из имен файлов в качестве переменной. Поэтому я хочу, чтобы в нем было 4 процесса, 1 для каждого процессора, и он должен пробиваться через список, когда одна из функций заканчивается, он переносит на следующий элемент в списке, и каждая из этих функций будет обновлять один общий словарь.Многопроцессор Python и список переменных, которые должны быть переданы функции
Psudofunction код:
def PSC(fnom):
f = open(fnom,"r")
r = xml.dom.minidom.parse(f)
cond[fnom] = otherfunc(r)
f.close()
Так, а) можно ли использовать мультипроцессирование на эту функцию, и б) если да, то какой метод из многопроцессорной библиотеки сможет справиться с этим, в) если вам очень приятно, как я могу перебирать список, передавая каждый элемент в качестве аргумента каждый раз.
размышления о том, как она будет работать (psudo быков *** код):
if __name__ == __main__:
name_list = name_list_func()
method = multiprocessing.[method]() #no idea what method
method.something(target=PSC, iter=name_list) #no idea either
Спасибо за быстрый ответ, и я пошел с imap_unordered(), и я застрял в 2.7 из-за ArcPy. – Tarkin