Я имею дело с многопроцессорной обработкой Python, и я хотел бы понять, можно ли с ней сэкономить время.
У меня есть три txt-файла, которые должны быть прочитаны Python.Поэтому я определил функцию, которая открывает текстовый файл и читает его построчно.Входные данные, необходимые для этой функции, это просто имя txt-файла:
import multiprocessing as mp
output=mp.Queue()
def funct_imp(name):
[...]
output.put([var1,var2,var3])
return (var1,var2,var3)
Затем я сравнил первый скрипт:
res01=funct_imp(name01)
res02=funct_imp(name02)
res03=funct_imp(name03)
со вторым, в котором я использую многопроцессорную обработку Python:
for name in [name01,name02,name03]:
pool=mp.Process(target=func_imp,args=name)
pool.start()
res=output.get()
Теперь у меня есть два основных вопроса:
- Как получить результаты по всем процессам?В конце я нахожу в
res
те же самые результаты res03
- Первый сценарий выполняется за 18 секунд, а второй - за 25 секунд.Я ожидал, что все будет наоборот (на самом деле я ожидал большего сокращения времени).