Предоставляют ли многопроцессорные пулы каждому процессу одинаковое количество задач или они назначаются доступными?
Когда ты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.