Думаю, я запуталась, как мне к этому подойти.
У меня есть ряд функций, которые я использую для взаимодействия с API, например получение идентификатора продукта, обновление сведений о продукте, обновление инвентаря. Эти вызовы должны выполняться один за другим, и все они заключены в одну функцию api.push ().
Скажем, мне нужно запустить api.push () 100 раз, 100 идентификаторов продуктов.
Я хочу запустить несколько api.push одновременно, чтобы ускорить обработку моего файла. Например, допустим, я хочу запустить 5 за раз.
Я не понимаю, многопроцессорность это или многопоточность, или ни то, ни другое. Я пробовал оба, но они, похоже, не работали, например, у меня есть этот
jobs = []
for n in range(0, 4):
print "adding a job %s" % n
p = multiprocessing.Process(target=api.push())
jobs.append(p)
# Starts threads
for job in jobs:
job.start()
for job in jobs:
job.join()
Любое руководство будет оценено
Спасибо
Прочтите Документ Python и изучите глобальная блокировка интерпретатора, чтобы понять, следует ли вам использовать многопроцессорность или многопроцессорность в вашей ситуации.
Я не знаю, как работает api.push
, но учтите, что вы должны передать ссылку на функцию multiprocessing.Process
.
Использование p = multiprocessing.Process(target=api.push())
передаст все, что возвращает api.push()
, в качестве функции, вызываемой в подпроцессах.
если api.push
- это функция, вызываемая в подпроцессе, вам следует использовать p = multiprocessing.Process(target=api.push)
, поскольку он передает ссылку на функцию, а не ссылку на результат функции.
Вот и все, у меня были скобки. Спасибо