Когда вы map
итерабельны к multiprocessing.Pool
, являются ли итерации, разделенные на очередь для каждого процесса в пуле в начале, или есть общая очередь, из которой выполняется задача, когда процесс освобождается?
def generate_stuff():
for foo in range(100):
yield foo
def process(moo):
print moo
pool = multiprocessing.Pool()
pool.map(func=process, iterable=generate_stuff())
pool.close()
Итак, учитывая этот непроверенный код предложения; если в пуле есть 4 процесса, каждый процесс получает выделение 25 штук или же 100 штук извлекаются один за другим процессами, которые ищут вещи для того, чтобы каждый процесс мог выполнять различное количество материалов, например 30, 26, 24, 20.