У меня есть Python
код:Использование multiprocessing.Process с максимальным числом одновременных процессов
from multiprocessing import Process
def f(name):
print 'hello', name
if __name__ == '__main__':
for i in range(0, MAX_PROCESSES):
p = Process(target=f, args=(i,))
p.start()
, который хорошо работает. Однако MAX_PROCESSES
является переменной и может быть любым значением между 1
и 512
. Поскольку я выполняю этот код только на машине с ядрами 8
, мне нужно выяснить, возможно ли ограничить количество процессов, разрешенных для запуска в одно и то же время. Я просмотрел multiprocessing.Queue
, но это не похоже на то, что мне нужно - или, может быть, я неправильно интерпретирую документы.
Есть ли способ ограничить количество одновременных multiprocessing.Process
?
для г в интервале (0, мин (MAX_PROCESSES, 8)): – Jacob
@Jacob Я все еще хочу, чтобы все MAX_PROCESSES в бегите хотя. Вышеприведенный код усечен для простоты, но основная функция вызывается до 512 раз (отсюда и цикл). Поэтому мне интересно, есть ли способ обработки очереди. – Brett
, так что вы хотите установить мастер/работник, и хотите ограничить число рабочих? – Jacob